Matlab學習筆記(4)——單元數組

本節主要是熟悉matlab單元數組,該數據結構與python列表結構類似

單元數組創建與賦值:

>> A=cell(22)

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]              []

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章