要建立資料結構除了使用句點(.
)的方式之外,亦可使用 struct()
函數來建立資料結構。struct()
函數的輸入參數是兩兩一對:第一個是資料結構的欄位名稱,配上第二個儲存資料的純量(scalar)或巢狀陣列(cell array),例如:
struct ("field1", 1, "field2", 2)
輸出為
ans = { field1 = 1 field2 = 2 }
若 struct()
輸入的參數中,儲存資料的參數同時含有純量與巢狀陣列時,Octave 會將純量自動轉變為相同大小的巢狀陣列,例如:
s = struct ("field1", {1, "one"}, "field2", {2, "two"}, "field3", 3);
資料結構 s
的內容如下:
s.field1
輸出為
ans = 1 ans = one
s.field2
輸出為
ans = 2 ans = two
s.field3
輸出為
ans = 3 ans = 3
若要建立包含一個獨立巢狀陣列的資料結構,必須將巢狀陣列放入另一個巢狀陣列中,例如:
struct ("field1", {{1, "one"}}, "field2", 2)
輸出為
ans = { field1 = { [1,1] = 1 [1,2] = one } field2 = 2 }
struct ("field", value, "field", value, ...)
struct()
函數可以建立資料結構並初始化所儲存的資料。 若參數 value
是巢狀陣列,則會建立結構陣列,其中所有的巢狀陣列必須有相同的維度,單一元素的巢狀陣列或是純量會被自動複製成相同長度的巢狀陣列。若 value
指定為空巢狀陣列,則會產生空結構陣列。
struct() 函數的參數若指定為物件,則會傳回此物件內部的資料結構。
isstruct (expr)
isstruct(expr)
函數會判斷 expr
是否為資料結構。