元胞數組


元胞數組定義:

        元胞數組(Cell Array)中的基本組成是元胞,每一個元胞可以視為一個單元(Cell),用來存放各種不同類型的數據,如矩陣、字符串、多維數組、元胞數組以及結構數組等。同一元胞數組中各元胞的內容可以不同。

        從定義中元胞內可以用來存放各種不同的數據類型這個角度來看,matlab中的元胞數組類似於C語言中的結構體。
元胞數組維數與下標:

        元胞數組可以使一維、二維或者多維,每個元胞以下標區分,下標的編碼方式也與矩陣的相同,分為單下標和全下標方式。
元胞數組的創建:

 1、直接使用{}創建,用大括號"{}"創建元胞數組並賦值

    >> A = {'這是一個元胞數組',[1 2 3 4];magic(3),{'你好','hello'}}
    A =
      2×2 cell 數組
        '這是一個元胞數組'    [1×4 double]
           [3×3 double]     {1×2 cell  }
     
    >> whos  A
      Name      Size        Bytes  Class    
      A         2x2         806    cell       

分析:創建的元胞數組中元胞A(1,1)是字符串,A(1,2)是矩陣,A(2,1)是矩陣,A(2,2)是1個元胞數組

2、由各元胞創建(由創建各元胞的方法創建元胞數組)

    >>B(1,1) = {'這是第二個元胞數組'}
    B =
      cell
        '這是第二個元胞數組'
     
    >>B(1,2) = {5*5i}
    B =
      1×2 cell 數組
        '這是第二個元胞數組'    [0.0000 +25.0000i]
     
    >>B(1,3) = {[1 2;3 4]}
    B =
      1×3 cell 數組
        '這是第二個元胞數組'    [0.0000 +25.0000i]    [2×2 double]

3、由各元胞內容創建。

       這種方法與第二種方法有些相似,容易混淆,使用時注意()和{}的區別。

       在元胞數組中A(1,2)表示第一行第2列的元胞元素,A{1,2}表示元素中存放的內容

    >> A(1,2)
    ans =
      cell
        [1×4 double]
     
    >> A{1,2}
    ans =
         1     2     3     4

        從上面的程序,慢慢體會一下元胞元素與元胞元素中存放內容的差別;元胞元素只是說明這是一個“[1×4 double]”的矩陣,且矩陣中的數據類型是double類型,可見,元胞元素只是給出了數據類型。元胞數組中存放的內容就是這個元胞元素的取值。如果對C語言比較熟悉的朋友,可以理解類比C語言變量的數據類型與變量的取值來理解一下。

        下面使用由元胞內容創建元胞的方法,見下面程序,注意這里使用的是{},而不是()。

    >> C{1,1} = {'這是第三個元胞數組'}
    C =
      cell
        {1×1 cell}
     
    >> C{1,2} = magic(4)
    C =
      1×2 cell 數組
        {1×1 cell}    [4×4 double]

元胞數組的內容顯示:

        使用celldisp命令顯示元胞數組的內容

    >> celldisp(A)
    A{1,1} =
     
    這是第一個元胞數組
    A{2,1} =         
         8     1     6
         3     5     7
         4     9     2
     
    A{1,2} =
         1     2     3     4
     
    A{2,2}{1} =
    你好
    A{2,2}{2} =
    hello
     
    %可以看出,在matlab中元胞數組的顯示是默認“列顯示”的;

【注意】元胞中套元胞的獲取方法為A{2,2}{1},表示第2行第2列的元胞元素中存放元胞數組的第一個元胞元素的內容
元胞數組的內容獲取:

1、獲取元胞數組的元素(簡單理解就是獲取指定元胞的大小),用小括號“()”,獲取指定元胞的內容,用大括號“{}”,進一步獲取指定元胞的內容x3 = A{1,2}(1,4),如A{1,2}為矩陣,獲取該矩陣指定元素(1,4);進一步獲取指定元胞內容中的內容,x4 = A{2,2}{1},如 A{2,2}是元胞數組中的元胞元素,獲取該元胞元素中的第一個元胞中存放的內容

    >> x1 = A(1,2)
    x1 =
      cell
        [1×4 double]   %獲取元胞數組的元素,可以理解為元胞的大小
     
    >> x2 = A{1,2}
    x2 =
         1     2     3     4
     
    >>  x3 = A{1,2}(1,4)
    x3 =
         4
     
    >> x4 = A{2,2}{1}
    x4 =
        '你好'
————————————————
版權聲明:本文為CSDN博主「aoxiang_ywj」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/baidu_37973494/article/details/86626631


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM