MATLAB 编程/高级主题/面向对象编程/结构体数组
外观
< 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' 字段,并将结果复制回原始结构体。