MATLAB 的 cell,稱單元格數組 or 元胞數組:使用頻率特別高,甚至比 struct 結構體還高。html
MATLAB文檔給出的 cell 官方定義:編程
A cell array is a collection of containers called cells in which you can store different types of data.數組
精華之處就是在能夠存儲不一樣類型的數據.能夠是Matlab的類型或者自定義的類型.數據結構
一個元胞數組的一個單元可能包含:一個實數數組 or 字符型數組 or 複數數組 or 元胞數組(嵌套啦)函數
1 元胞數組的建立spa
建立方法有 3 種:直接賦值法、利用函數cell()、利用{ }直接建立元胞數組的全部單元。.net
1.1 直接賦值法3d
經過賦值語句把值賦到單元數組的一個單元中,但每一次賦值只能建立一個單元內容。指針
兩種賦值方法:內容索引法(content indexing)和單元索引法(cell indexing)。htm
(1)內容索引法:賦值語句的左邊用大括號 { } 將標識單元的下標括起來,右邊爲單元的內容。
(2)單元索引法:賦值語句的左邊用小括號 () 將標識單元的下標括起來,右邊用大括號將存儲於單元中的數據括起來。
1.2 利用函數cell() ——較爲經常使用
利用函數cell() 能夠建立一個元胞數組,還能夠規定其大小。
1.3 利用{ }直接建立元胞數組(的全部單元)
這是一種快捷的元胞數組建立方法,利用 { } 能夠直接快速地建立所需元胞數組。在大括號中一次列出所需建立元胞數組的內容,它們之間用逗號(,)隔開,行與行之間用分號(;)隔開,這樣就能夠建立一個已經初始化好的元胞數組。
2 元胞數組的尋訪
在編程時,一個元胞數組的每個單元都是一個指針,指向其餘的數據結構,而這些數據結構能夠是不一樣的數據類型。 在MATLAB中,元胞數組建立時,沒有顯示內容單元的內容,顯示的只是它相應的數據類型。而MATLAB能夠經過單元的名稱來尋訪其單元包含的內容。
在MATLAB中,元胞數組的尋訪有如下兩種形式。
(1)用( )將下標括起來尋訪其單元的結構類型。
(2)用{ }將下標括起來尋訪其單元的內容。
(3)此外,能夠用celldisp( )函數對元胞數組的全部內容進行尋訪。
PS:
關於cell的訪問:
1.X= C(s)使用這種"()"形式的返回的是cell類
2.X = C{s}使用這種"{}"形式的返回的是cell中的內容
3.其餘的基本上與一般的數組.矩陣訪問同樣了
4.A{1,1}(2,3:end)訪問的是A中的第一個cell裏面內容的第2行的第三個元素之後的全部元素
5.A{1,3}.name訪問的是A中的A{1,3}cell裏面結構的name值
6.cell的圖形化顯示使用命令cellplot(A)便可如B={[1;2]},這就定義了一個cell型的變量B,裏面保存的是一個矩陣[1;2],要引用裏面的數據只要在大括號裏寫上對應的下標便可,如B{1}。
下面咱們給B再加個元素,咱們能夠這樣定義B(2)={'hello'}。也能夠利用引用的方法定義B{2}='hello'。第二種方法比第一種方法更方便因此更經常使用。
這樣B就有兩個元素了,B(1)是{[1;2]},B(2)是{'hello'},每一個元素都是cell型的(注意和B{1}、B{2}的區別,B{1}是[1;2],B{2}是'hello')。
【Reference】