Matlab三種陣列間的轉換
三種陣列是:數值型矩陣,字元陣列(或字串),單元陣列(也有叫元胞陣列)
1、數值型矩陣轉換為字元陣列(num2str、mat2str)
>> A=[1,2,3;4,5,6];
>> B=num2str(A)
B =
1 2 3
4 5 6
>> whos
Name Size Bytes Class Attributes
A 2x3 48 double
B 2x7 28 char
2、字元陣列轉換為數值型(str2num<4位精度>、str2double<雙精度>)
>> B=['123.34'];
>> A=str2num(B)
A =
123.3400
>> whos
Name Size Bytes Class Attributes
A 1x1 8 double
B 1x6 12 char
3、單元陣列轉換為字元陣列(cell2mat):
例如:
>> A={'sfjsdlgksdgjlsdjgkl'};
>> B=cell2mat(A)
B =
sfjsdlgksdgjlsdjgkl
>> whos
Name Size Bytes Class Attributes
A 1x1 98 cell
B 1x19 38 char
4、字元陣列轉換為單元陣列(cellstr)
>> A=['what';'edit';'play'];%注意:用A=[]生成字元陣列是,必須保證每行有相同的長度,不夠可用空格補
>> B=cellstr(A)
B =
'what'
'edit'
'play'
>> whos
Name Size Bytes Class Attributes
A 3x4 24 char
B 3x1 204 cell
5、單元陣列轉換為數值型矩陣
>> A={'123.4'};
>> B=cell2mat(A)
B =
123.4
>> C=str2num(B)
C =
123.4000
>> whos
Name Size Bytes Class Attributes
A 1x1 70 cell
B 1x5 10 char
C 1x1 8 double
6、數值型矩陣轉換為單元陣列(num2cell)
>> A=[1,2,3;4,5,6];
>> B=num2cell(A)
B =
[1] [2] [3]
[4] [5] [6]
>> whos
Name Size Bytes Class Attributes
A 2x3 48 double
B 2x3 408 cell