異質陣列中的每一個元素,可以看成是一個抽屜或盒子(Cell),用來儲存各種不同型態的 MATLAB 資料,例如:前幾章已介紹過的字串、矩陣、多維陣列,或是下一章即將介紹的結構陣列等各種不同型態的資料。
有三種方式可以用來建立異質陣列,分別是 Cell Indexing、Content Indexing、及使用大括號 {} 等方法,以下逐一舉例說明之。
我們可針對異質陣列中各個構成元素,直接一一加以設定,此種建立異質陣列的方法通稱為 「Cell Indexing」,例如:
在上例中,建立了一個異質陣列 A,其維度為 2×2,由四個具有不同資料型態的元素所構成,其中 A(1,1) 是一個字串 ‘This is the first cell.’, A(1,2) 是一個維度為 1×2 的複數陣列 [5+j*6, 4+j*5],A(2,1) 是一個維度為 3×3 的實數陣列 [1 2 3; 4 5 6; 7 8 9],而 A(2,2) 則存放另一個異值陣列,此陣列是由字串所構成: {‘Tim’, ‘Chris’}。異質陣列 A 的內容可以圖示如下:
另一建立異質陣列的方法,稱為 Content Indexing,以下使用此法來建立一個與前述相同的異質陣列 A:
根據筆者的經驗,Content Indexing 是一個比較好記的方法,只需將矩陣 indexing 所用的小括號改成大括號即可。可比較如下:
- A(2, 3) = 5 代表一般矩陣 A的第二列、第三行元素為 5。
- A{2, 3} = [12, 34] 代表異值陣列 A 的第二列、第三行元素為 [12, 34]。
第三種建立異質陣列的方法,是直接使用大括號 {} 將所有元素內容一次設定完成,舉例如下:
在上述範例中,我們使用 C = [A B] 來合併兩個異質陣列,以建立一新異質陣列,此方式與合併一般陣列的方法完全相同。
MATLAB程式設計:入門篇