1. 程式人生 > >Matlab入門-變數Cell array

Matlab入門-變數Cell array

1、cell array的宣告。

方式1
>> a(1,1)={[1 2 3; 4 5 6]};%大括號括起來。
>> a(1,2)={'sasasa'};
>> a(2,1)={3+7i};
>> a(2,2)={-pi:pi:pi};
>> a

a =

  2×2 cell 陣列

    [2×3 double]    'sasasa'    
    [3.0000 + 7.0000i]    [1×3 double]
////////////////////////////////////////////////////////////////////////////////
方式2
>> a{1,1}=[12 2 3;4 5 6];%前面索引便是大括號;
>> a{1,2}='sasfa';
>> a

a =

  1×2 cell 陣列

    [2×3 double]    'sasfa'

>> 

2 讀取cell array中內容

>> a{1,1}=[12 2 3;4 5 6];
>> a{1,2}='sasfa';
>> a

a =

  1×2 cell 陣列

    [2×3 double]    'sasfa'

>> a(1,1)%小括號

ans =

  cell

    [2×3 double]

>> a{1,1}%大括號

ans =

    12     2     3
     4     5     6

>> 

 3、Mutidimensional Array:多維cell array的建立。用命令cat()

>> a{1,1}=[1 2; 3 4];
>> a{1,2}='strng';
>> a{2,1}=1+2i;
>> a{2,2}=0:1:3;
>> b{1,1}=[3 4 ;5 6];
>> b{1,2}='hjkda';
>> b{2,1}=3+9i;
>> b{2,2}=0:2;4;
>> c=cat(3,a,b)
 2×2×2 cell 陣列

c(:,:,1) = 

    [2×2 double]    'strng'     
    [1.0000 + 2.0000i]    [1×4 double]


c(:,:,2) = 

    [2×2 double]    'dsakl'     
    [3.0000 + 9.0000i]    [1×3 double]

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
>> d=cat(1,a,b)%第一個引數為1時是row的合併。

d =

  4×2 cell 陣列

    [2×2 double]    'strng'     
    [1.0000 + 2.0000i]    [1×4 double]
    [2×2 double]    'dsakl'     
    [3.0000 + 9.0000i]    [1×3 double]

>> e=cat(2,a,b)%第一個引數為2時是列的合併。

e =

  2×4 cell 陣列

    [2×2 double]    'strng'         [2×2 double]    'dsakl'     
    [1.0000 + 2.0000i]    [1×4 double]    [3.0000 + 9.0000i]    [1×3 double]

 4、reshape()指令,

>> A=[1:3;4:6];
>> B=reshape(A,3,2)

B =

     1     5
     4     3
     2     6
//////原來的行數乘列數等於現在的行數乘列數。

5、如何儲存下載工作空間中的資料

%把工作空間中產生的資料儲存到本地
>> clear
>> a=magic(4);
>> save mydata.mat%用記事本開啟亂碼
>> save madata2.mat -ascii%用記事本開啟不是亂碼
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
%在matlab中開啟本地中有的資料
>> load('mydata.mat')%儲存的內容更多,可以記住原變數的名稱
>> a

a =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1


%或者
>> load('madata2.mat','-ascii')%不能記住原變數名
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
儲存特定變數
>> save('hh.mat','b','-ascii')
檔名、變數名、格式

6、儲存變數

>> for i=1:11
fprintf(fid,'%5.3f %8.4f',x(i),y(i));
end
>> fclose(fid);
>> type sin.txt;

0.000   0.00000.314   0.30900.628   0.58780.942   0.80901.257   0.95111.571   1.00001.885   0.95112.199   0.80902.513   0.58782.827   0.3090
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%把記事本中的內容讀到matlab
>> fid=fopen('hhh.txt','r');
>> i=1;
>> while~feof(fid)
name(i,:)=fscanf(fid,'%5c',1);
no1(i)=fscanf(fid,'%d',1);
no2(i)=fscanf(fid,'%d',1);
no3(i)=fscanf(fid,'%g\n');
i=i+1;
end
>> name

name =

jon  
jikf 
sf   

>> no1

no1 =

        1998        1997        1997

>> no2

no2 =

    12    56    23

>> no3

no3 =

    5.6700   45.3000   23.4000