Matlab入門-變數Cell array
阿新 • • 發佈:2018-12-15
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