跳轉到內容

MATLAB 程式設計/陣列/元胞陣列

來自華夏公益教科書,開放的書籍,用於開放的世界

元胞陣列簡介

[編輯 | 編輯原始碼]

元胞陣列可以在每個元素中包含不同的資訊。這些型別的陣列在與電子表格軟體互動時非常有用。

建立元胞陣列

[編輯 | 編輯原始碼]

元胞陣列遵循與普通陣列相同的約定,只是使用花括號而不是方括號。

 array = [1, 2, 3; 4, 5, 6];
 cell_array = {1, 2, 3; 4, 5, 6};

元胞陣列比普通陣列的限制更少。普通陣列可以儲存字串;但是,每個元素中的字串必須具有相同的長度。如果普通陣列中的一個元素是字串,那麼所有元素都必須是字串。元胞陣列沒有這些限制。

 cell_array = {1, 2, 'a', 'abc'; rand(3, 2), magic(3), eye(3), 'junk'}
   cell_array = 
     [         1]    [         2]    'a'             'abc' 
     [3x2 double]    [3x3 double]    [3x3 double]    'junk' 

元胞陣列的內容限制更少,但也帶來了複雜性。雖然元胞陣列是一個強大的工具,但這些陣列的工作方式不同,因為每個元素幾乎可以是任何東西。

動態調整大小

[編輯 | 編輯原始碼]

元胞陣列可以動態調整大小,這是更高階資料結構中的一個關鍵特徵。例如,使用以下命令的佇列資料結構

 cell_array{end+1}='a';
 cell_array{end+1}='b';

可以使用以下命令從佇列的前面彈出元素

 cell_array(1)=[]; % remove first element - resize
 cell_array(1)=[]; % remove first element - resize

GUI 表格

[編輯 | 編輯原始碼]

在將表格顯示到圖形時,使用元胞陣列。

 uitable('Data',{'hello',1;2,'there'})


轉換為和從元胞陣列轉換

[編輯 | 編輯原始碼]

從數值陣列轉換為元胞陣列

[編輯 | 編輯原始碼]

使用num2cell從數值陣列轉換為元胞陣列。

 >> cell_array = num2cell(numeric_array);


從元胞陣列轉換為數值陣列

[編輯 | 編輯原始碼]

使用cell2mat從元胞陣列轉換為數值陣列。

 >> numeric_array = cell2mat(numeric_cell_array);

外部連結

[編輯 | 編輯原始碼]

ControlTheoryPro.com

華夏公益教科書