建立結構(Creating Structures)

要建立資料結構除了使用句點(.)的方式之外,亦可使用 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 是否為資料結構。