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

posted @ 2022-04-29 17:33  无敌小金刚  阅读(3071)  评论(0)    收藏  举报