访问非标量结构数组的元素
这个例子展示了如何访问和处理来自非标量结构数组的多个元素的数据:
创建一个1乘3的结构年代
与字段f
:
(1)。f =1; s(2).f =“两个”;(3)。f =3 * ones(3);
尽管数组中的每个结构必须具有相同数量的字段和相同的字段名,但字段的内容可以是不同的类型和大小。当你提到字段时f
对于结构数组的多个元素,例如
年代.f (1:3)
或
顺丰速递
MATLAB®类中的元素返回数据以逗号分隔,显示如下:
Ans = 1 Ans = 2 Ans = 3 3 3 3 3 3 3 3 3 3 3 3 3 3
不能将该列表分配给使用此语法的单个变量V = s.f
因为字段可以包含不同类型的数据。但是,您可以将列表项分配给相同数量的变量,例如
[v1, v2, v3] = s.f;
或赋值给单元格数组的元素,例如
C = {s.f};
如果所有字段都包含相同类型的数据并且可以形成超矩形,则可以连接列表项。例如,创建一个结构全国矿工工会
在字段中使用标量数值f
,并将字段中的数据连接起来:
num(1)。F = 1;num(2)。F = 2;num(3)。F = 3;allNums = [nums.f]
这段代码返回
3 . allNums = 1 2
如果希望用相同的操作处理数组的每个元素,请使用arrayfun
函数。例如,计算字段中元素的数量f
数组中的每个结构年代
:
numElements = arrayfun(@(x) nummel (x.f), s)
的语法@ (x)
创建一个匿名函数。此代码调用元素个数
函数为数组的每个元素年代
,例如元素个数(s (1) .f)
,并返回
numElements = 1 3 9
相关信息请参见: