MATLAB 程式設計/高階主題/面向物件程式設計/結構體陣列
外觀
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
或使用
>> city.('name')
ans = Liege
以類似的方式,可以使用 setfield 設定欄位的值
>> setfield(city,'name','Outremeuse')
當程式執行期間確定結構體名稱時,isfield、getfield 和 setfield 函式很有用。
可以使用 rmfield 函式刪除結構體陣列中的欄位。
>> city = rmfield(city, 'name');
將從 city 結構體中刪除 'name' 欄位,並將結果複製回原始結構體。