主要内容

访问非标量结构数组的元素

这个例子展示了如何访问和处理来自非标量结构数组的多个元素的数据:

创建一个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

您不能使用该语法将列表赋值给单个变量v =顺丰速递因为字段可以包含不同类型的数据。但是,您可以将列表项分配给相同数量的变量,例如

[v1, v2, v3] = s.f;

或赋值给单元格数组的元素,例如

c ={顺丰速递};

如果所有字段都包含相同类型的数据,并且可以形成一个超矩形,则可以连接列表项。例如,创建一个结构全国矿工工会字段中的标量数值f,并连接字段中的数据:

num(1)。f = 1;num(2)。f = 2;num(3)。f = 3;allNums = [nums.f]

这段代码返回

2 . n = 1

如果想用相同的操作处理数组中的每个元素,请使用arrayfun函数。例如,计算字段中元素的数量f数组中每个结构的年代

numElements = arrayfun(@(x) numel(x.f), s)

的语法@ (x)创建匿名函数。这段代码调用元素个数函数的每个元素年代,如元素个数(s (1) .f),并返回

numElements = 1 3 9

有关信息,请参见: