matlab 的结构体第一次让 matlab 中的变量有了可以通过
.
访问的成员变量,有了类的含义,甚至是面向对象的意味。
1. 结构体的赋值
结构体的赋值,这里不建议用下面这种形式进行统一赋值,
s = sturct('field1',values1,'field2',values2,…)
而是建议直接赋值,就是对每一个属性进行单独赋值,因为每一个属性的长度不同,所以,直接赋值,就省去了声明的过程,方便,快捷;
例如我们要声明下面的结构体:
example.name='Zhang';
example.addr='xi''an';
example.age= 23;
直接输入以上语句便可。
2. 结构体的属性增加删除
如果我们要删除结构体的某一项属性,那么可以通过函数 rmfield,来实现,如果要增加一个属性,那么可以直接进行赋值便可。
>> example = rmfield(example, 'addr')
example =
name: 'Zhang'
age: 23
>> example.address = 'xi''an'
example =
name: 'Zhang'
age: 23
address: 'xi'an'
3. 结构体字段名称的获取以及判断
假如我们想要知道这个结构体具体有多少字段(属性),我们可以通过函数 fieldnames 来获取字段名称,同时我们也可以通过函数 isfield 来判断是否存在某一字段。
具体的实例如下:
>> fieldnames(example)
ans =
'name'
'age'
'address'
fieldnames 返回的是 cell
>> isfield(example, 'addr')
ans =
0
>> isfield(example, 'address')
ans =
1