跳轉到內容

Octave 程式設計教程/結構體陣列

來自華夏公益教科書,開放的書籍,為了一個開放的世界

Octave 中的結構體將不同資料型別稱為欄位,組合成一個物件。欄位透過其名稱訪問。

宣告結構體

[編輯 | 編輯原始碼]

結構體透過為其欄位賦值來宣告。句點 (.) 分隔欄位名稱和結構體名稱

>> city.name = 'Liege';
>> city.country = 'Belgium';
>> city.longitude = 50.6333;
>> city.latitude = 5.5666;

結構體的欄位及其值可以透過簡單地輸入結構體的名稱來顯示

>> city
city =
{
  name = Liege
  country = Belgium
  longitude =  50.633
  latitude =  5.5666
}

操作結構體

[編輯 | 編輯原始碼]

結構體可以像任何物件一樣被複制

>> city_copy = city;

在大多數情況下,結構體的欄位可以使用句點運算子進行操作。欄位的值可以透過以下方式覆蓋

>> city.name = 'Outremeuse';

同樣,欄位的值可以透過以下方式檢索

>> city.name
ans = Outremeuse

函式 isstruct 可用於測試物件是否為結構體。使用函式 fieldnames,所有欄位名稱將作為元胞陣列返回

>> fieldnames(city)
ans =
{
  [1,1] = name
  [2,1] = country
  [3,1] = longitude
  [4,1] = latitude
}

要測試結構體是否包含給定名稱的欄位,可以使用函式 isfield

>> isfield(city,'name')
ans =  1

可以使用 getfield 提取欄位的值

>> getfield(city,'name')
ans = Liege

類似地,可以使用 setfield 設定欄位的值

>> setfield(city,'name','Outremeuse')

函式 isfieldgetfieldsetfield 在結構體名稱在程式執行期間確定時非常有用。

華夏公益教科書