胞元陣列(cell arry)的基本組分是胞元(cell),每個胞元本身在陣列中是平等的,只能以下標區分。胞元可以存放任何型別、任何大小的陣列,如任意維數值陣列、字串陣列、符號物件等,而且同乙個胞元陣列中各胞元中的內容可以不同。與數值陣列一樣,胞元陣列維數不受限制,可以一維、二維或更高維,不過一維胞元陣列用得最多;胞元陣列對胞元的編址方法也有單下標編址和全下標編址兩種。下面我們就講解一下胞元陣列的建立,以及簡單用法。
產生資料
在建立胞元陣列之前我們先用指令產生不同大小、不同型別的資料,以備後面建立胞元陣列使用。具體建立**及結果如下圖所示:
建立胞元陣列
對胞元陣列來說,在胞元陣列中,胞元和胞元內容是兩個不同範疇的東西。因此,尋訪胞元和尋訪胞元中的內容是兩種不同的操作。
「胞元標識(cell indexing)」:以二維胞元陣列a為例,a(2,3)是指a胞元數線中的第2行第3列胞元元素;
「胞元內容編址(content addressing)」:如a是指a胞元陣列第2行第3列胞元中所允許存放的內容。
注意,這兩者的以別僅在於所用的括號不同。「外標識的胞元元素」用的是「圓括號」,而「編址胞元元素內涵」用的是「花括號」。下面我們就演示建立胞元陣列方法之一,具體**如下:
胞元的援引
這裡要援引胞元時用的是胞元標誌,及此時用的是「圓括號」,具體方法如下。從圖上我們可以看出用「圓括號」時,援引的是b胞元陣列中的第2行第3列胞元元素,而不是第2行第3列胞元存放的內容。而且資料型別為「胞元」。
胞元內容的援引
這裡我們援引胞元內容,即使用的是「花括號」。此時援引的是存放在b胞元陣列中的第2行第3列胞元的具體內容。下面我們看一下援引胞元內容的具體結果,具體的**和援引結果請看下圖所示:
小 結
1.第二步是建立胞元陣列的方法之一,常用於建立小型胞元陣列。
2.「圓括號」援引的是胞元,所以a是「cell」型;「花括號」援引的是胞元內容,所以b是「雙精度double」型。
3.胞元陣列更有效地建立方法是,借助cell指令預定義胞元空陣列。
Matlab中的元胞陣列
元胞陣列 cell array 將型別不同的相關資料整合到乙個單一的變數中,使得大量相關資料的引用和處理變得簡單方便。也就是說cell元胞陣列,儲存不同型別的資料。建立方法有3種 直接賦值法 利用函式cell 利用直接建立元胞陣列的所有單元。通過賦值語句把值賦到元胞陣列的乙個單元中,但每一次賦值只能...
元胞陣列索引 MATLAB的cell陣列
5 cell陣列 元胞陣列 cell 是matlab的一種特殊資料型別。可以將元胞陣列看做一種無所不包的通用矩陣,或者叫做廣義矩陣。組成元胞陣列的元素可以是任何一種資料型別的常數或者常量,每乙個元素也可以具有不同的尺寸和記憶體占用空間,每乙個元素的內容也可以完全不同。和一般的數值矩陣一樣,元胞陣列的...
關於Matlab元胞結構體的賦值問題
此文僅將在matlab除錯過程中發現的乙個易忽略的問題作乙個記錄。程式設計如下讀取結構體target中的資料,target結構體如下所示 如下 tr ind find img.images.set 1 te ind find img.images.set 3 train.feature target...