本節主要是熟悉matlab單元數組,該數據結構與python列表結構類似
單元數組創建與賦值:
>> A=cell(2,2)
A =
[] []
[] []
>> A(1,1)={magic(3)}
A =
[3x3 double] []
[] []
'花括號一定不能少!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
>> A(1,2)={'dsasdqw'}
A =
[3x3 double] 'dsasdqw'
[] []
>> A(2,1)={1:5}
A =
[3x3 double] 'dsasdqw'
[1x5 double] []
>> A(2,2)={[1+2*i 2-3*i;2+3*i 1-2*i]}
A =
[3x3 double] 'dsasdqw'
[1x5 double] [2x2 double]
celldisp(A):
返回A中所有元素
單元數組索引
>> A(2,2)
ans =
[2x2 double]
>> A{2,2}
ans =
1.0000 + 2.0000i 2.0000 - 3.0000i
2.0000 + 3.0000i 1.0000 - 2.0000i
單元數組內嵌與索引創建
>> C{1,1}={'asd'}
C =
{1x1 cell}
>> C{3,3}={'asd'}
C =
{1x1 cell} [] []
[] [] []
[] [] {1x1 cell}
>> C{4,4}='asdasd'
C =
{1x1 cell} [] [] []
[] [] [] []
[] [] {1x1 cell} []
[] [] [] 'asdasd'
>> C{3,3}{7,7}=1:5
C =
{1x1 cell} [] [] []
[] [] [] []
[] [] {7x7 cell} []
[] [] [] 'asdasd'
可視化
cellplot(A)
刪除元素
>> C
C =
{1x1 cell} [] [] []
[] [] {2x3 cell} []
[] [] {7x7 cell} []
[] [] [] 'asdasd'
>> C{1,1}=[]
C =
[] [] [] []
[] [] {2x3 cell} []
[] [] {7x7 cell} []
[] [] [] 'asdasd'
>> C(4,4)=[]
空賦值只能具有一個非冒號索引。
重構
>> B=reshape(A,3,2)
B =
[3x3 double] [2x2 double]
[1x5 double] []
'dsasdqw' []
>> A
A =
[3x3 double] 'dsasdqw' []
[1x5 double] [2x2 double] []
>> B=reshape(A,2,2)
錯誤使用 reshape
要執行 RESHAPE,請勿更改元素數目。
調用計算
>> A=cell(2)
A =
[] []
[] []
>> A{1,1}=rand(2,3)
A =
[2x3 double] []
[] []
>> A(2,1)=rand(3,2)
無法從 double 轉換爲 cell。
>> A{2,1}=rand(3,2)
A =
[2x3 double] []
[3x2 double] []
>> A{1,2}=A{1,1}*A{2,1}
A =
[2x3 double] [2x2 double]
[3x2 double] []