MatLab---结构体数组
1.创建结构体数组
1)一个一个追加的方式创建,效率较低
packages(1)=struct('item_no',123,'cost',19.99,'price',39.95,'code','g')
packages =
包含以下字段的 struct:
item_no: 123
cost: 19.9900
price: 39.9500
code: 'g'
>> packages(2)=struct('item_no',456,'cost',5.99,'price',49.95,'code','l')
packages =
包含以下字段的 1×2 struct 数组:
item_no
cost
price
code
>> packages(3)=struct('item_no',598,'cost',11.11,'price',33.95,'code','w')
packages =
包含以下字段的 1×3 struct 数组:
item_no
cost
price
code
2)先创建最后一个结构体数组元素,提前开辟空间
packages(3)=struct('item_no',598,'cost',11.11,'price',33.95,'code','w')
packages =
包含以下字段的 1×3 struct 数组:
item_no
cost
price
code
2.结构体数组中的字段,每个元素都是一样的;
对于第二个元素,追加字段之后,每个元素的字段都要改变;
packages(2).name='jiki'
packages =
包含以下字段的 1×3 struct 数组:
item_no
cost
price
code
name
3.空值
可以赋予空值
packages(1)=struct('item_no',123,'cost',19.99,'price',[],'code','g')
packages =
包含以下字段的 struct:
item_no: 123
cost: 19.9900
price: []
code: 'g'
4. 输出结构体数组中的每个元素的某个字段值
packages.cost
ans =
19.9900
ans =
5.9900
ans =
11.1100
>> [packages.cost]
ans =
19.9900 5.9900 11.1100
5.为结构体数组增加字段,并赋值,用到deal函数;
[packages.quantity]=deal(101,102,103)
packages =
包含以下字段的 1×3 struct 数组:
item_no
cost
price
code
quantity
6.结构体数组中的字段值含有多个值,如quiz
student(3)=struct('name','Brownnose Violet','id_no',332,'quiz',[7.5,6.0,8.5,7.5])
student(2)=struct('name','Hemandez Pete','id_no',784,'quiz',[10.0,10.0,9.0,10.0])
student(1)=struct('name','Hemandez Pete','id_no',784,'quiz',[10.0,10.0,9.0,10.0])
注:求平均值函数mean()
7.结构体数组的嵌套问题
cyls(3)=struct('code','c','dimensions',struct('rad',3,'height',6),'weight',9)
cyls(2)=struct('code','a','dimensions',struct('rad',4,'height',2),'weight',5)
cyls(1)=struct('code','x','dimensions',struct('rad',3,'height',6),'weight',7)
计算上述圆柱体的体积:
function Vol=computeVol(clys)
Vol=pi*clys.dimensions.rad^2*clys.dimensions.height;
end
命令行:
computeVol(cyls(1))
ans =
169.6460

浙公网安备 33010602011771号