Matlab中的元胞陣列

2021-10-08 19:53:56 字數 1689 閱讀 5477

元胞陣列(cell array)將型別不同的相關資料整合到乙個單一的變數中,使得大量相關資料的引用和處理變得簡單方便。也就是說cell元胞陣列,儲存不同型別的資料

建立方法有3種:直接賦值法、利用函式cell()、利用直接建立元胞陣列的所有單元。

通過賦值語句把值賦到元胞陣列的乙個單元中,但每一次賦值只能建立乙個單元內容。

兩種賦值方法:內容索引法(content indexing)和單元索引法(cell indexing)。

函式cell()可以建立乙個元胞陣列,並能規定其大小(預分配記憶體)。

如預定義乙個元胞陣列,需要利用賦值法對元胞的每個單元進行初始化賦值。

cell_array = cell(m,n);

這是一種快捷的元胞陣列建立方法,利用可以直接快速地建立所需元胞陣列。在大括號中一次列出所需建立元胞陣列的內容,它們之間用逗號(,)隔開,行與行之間用分號(;)隔開,這樣就可以建立乙個已經初始化好的元胞陣列。

乙個元胞陣列的每乙個單元都是乙個指標,指向其他的資料結構,而這些資料結構可以是不同的資料型別。在matlab中,元胞陣列建立時,沒有顯示內容單元的內容,顯示的只是它相應的資料型別。而matlab可以通過單元的名稱來尋訪其單元包含的內容。

在matlab中,元胞陣列的尋訪有以下三種形式。

(1)用( )將下標括起來尋訪cell單元的結構型別。

(2)用將下標括起來尋訪cell單元的內容。

(3)用celldisp( )函式對元胞陣列的所有內容進行尋訪。

因此通過()訪問cell陣列時訪問到的是cell單元,通過{}訪問cell陣列時訪問到的是cell單元儲存的內容。

通過[ ]實現矩陣和矩陣元素的刪除。

元胞陣列刪除操作區別就在於{}和()

a=;a=; %並不能刪除第乙個cell單元,只是變成空值

a(1)=; %刪除第乙個單元

a(:)=; %一次性刪除所有cell單元

· celldisp:顯示元胞陣列中所有的內容

· cell:建立空的元胞陣列

· cellplot:利用圖形方式顯示內容

· cell2mat:將陣列轉變成為普通的矩陣

· mat2cell:將數值矩陣轉變成為cell陣列

· num2cell:將數值陣列轉變成為cell陣列

· cell2struct:將陣列轉變成為結構

· struct2cell:將結構轉變為cell陣列

· iscell:判斷輸入是否為cell陣列

參考:

MATLAB元胞陣列

元胞陣列是matlab的一種特殊資料型別,可以將元胞陣列看做一種無所不包的通用矩陣,或者叫做廣義矩陣。組成元胞陣列的元素可以是任何一種資料型別的常數或者常量,每乙個元素也可以具有不同的尺寸和記憶體占用空間,每乙個元素的內容也可以完全不同,所以元胞陣列的元素叫做元胞 cell 和一般的數值矩陣一樣,元...

matlab胞元陣列

今天敲matlab 的時候,用bwboundaries函式來提取影象邊界的 中出現了d b這句 這句 的意思是將邊影象中第乙個物件的所有邊界座標提取出來 覺得這種表達形式很有意思,查了查資料是元胞陣列的利用。元胞陣列裡面可以是任意結構的陣列 任意大小,任意型別 是一種很方便的結構,這樣你就可以把亂七...

如何使用matlab中的胞元陣列

胞元陣列 cell arry 的基本組分是胞元 cell 每個胞元本身在陣列中是平等的,只能以下標區分。胞元可以存放任何型別 任何大小的陣列,如任意維數值陣列 字串陣列 符號物件等,而且同乙個胞元陣列中各胞元中的內容可以不同。與數值陣列一樣,胞元陣列維數不受限制,可以一維 二維或更高維,不過一維胞元...