若要事先配置(Pre-Allocate)空的異質陣列,可用 cell 指令,例如:
若要測試某一變數是否為異質陣列,可用 iscell 指令,例如:
在上例中,iscell 指令的執行結果是傳回值 1,代表變數 A 是一個異質陣列,若傳回值 0,則代表不是異質陣列。
num2cell 指令可將一數值陣列轉換成異質陣列, 其使用語法為:
C = num2cell(A, dim)
其中 dim 是代表 「被切割」的維度,若不指定,則將每個元素視為異質陣列裡面的一個 1×1 矩陣,例如:
若要將數值陣列 A 中的每一直行, 轉成異質陣列 D 的元素,可輸入如下:
欲將數值陣列 A 的每一橫列, 轉成異質陣列 E 的元素,可輸入如下:
struct2cell 指令可將一結構陣列的所有欄位值轉換成異質陣列。(有關於結構陣列的說明,請參考本書下一章「結構陣列」。)例如:
另外有一個 cell2struct 指令,可以將異值陣列轉換為結構陣列,詳細說明請參考本書的下一章「結構陣列」。
若欲將一結構陣列的某一欄位值轉換成異質陣列,可使用 deal 指令,例如:
deal 指令的輸入及輸出引述需有相同個數,因此在上例中,sCell{1:length(S)} 的作用即是產生以逗點分開的輸出變數列。善用 deal 指令,可達成事半功倍之效,例如,欲列出 MATLAB 根目錄下所有目錄(不含檔案),可輸出如下:
MATLAB程式設計:入門篇