Struct
结构数组和数值数组一样,是Matlab支持的一种数据类型。有两种定义方式,直接引用方式和struct函数
(一)直接引用定义方式
Matlab中变量不需要事先申明,对struct也是如此。结构数组可以直接引用,并还可以动态扩充。Struct包含字段和字段中的元素,比如
>>x(1).real=0;x(2).real=1;x
x=
1x2struct array with fields:
real
定义了一个1*2的结构数组,其中real就是字段,每个real字段里包含了两个元素0和1,可以动态扩充字段中的元素如
>>x(3).real=2;x
x=
1x3struct array with fields:
real
也可以动态扩充字段
>>x(1).scale=4;
>>x
x=
1x3struct array with fields:
real
scale
查看第一个元素的各字段内容
>>x(1)
ans=
real: 0
scale: 4
不同字段之间的数据类型不需要相同,不同元素的同一字段的数据类型也不要求相同,甚至结构数组自身都可以作为字段的内容。
(二)struct函数
Struct的使用方法
s= struct(‘field1’,values1,‘field2’,values,…);
其中fieldi就是第i个字段,每个字段的元素放入valuesi中。如
>>s = struct('type',{'big','little'},'color',{'blue','red'},'x',{3,4})
s=
1x2struct array with fields:
type
color
x
再议结构数组的维数
当valuesx为元胞数组的时候,生成的结构数组的维数与元胞数组的维数相同。而在数据中不包含元胞的时候,得到的结构数组的维数是1×1的