跳转到内容

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 在结构体名称在程序执行期间确定时非常有用。

华夏公益教科书