此示例显示如何访问和处理非标度结构数组的多个元素中的数据:
创建一个1乘3的结构s
带场F
:
s(1).f=1;s(2).f=“两个”;s(3)。f=3*个(3);
虽然数组中的每个结构必须具有相同数量的字段和相同的字段名,但字段的内容可以是不同的类型和大小F
对于结构数组的多个元素,例如
s(1:3).f
或
s、 f
MATLAB®从中的元素返回数据逗号分隔列表,显示如下:
ans=1 ans=2 ans=3
不能使用语法将列表分配给单个变量v=s.f
因为字段可以包含不同类型的数据。但是,您可以将列表项分配给相同数量的变量,例如
[v1,v2,v3]=s.f;
或指定给单元格数组的元素,例如
c={s.f};
如果所有字段都包含相同类型的数据,并且可以形成一个超矩形,则可以连接列表项。例如,创建一个结构努姆斯
在字段中使用标量数值F
,并连接字段中的数据:
nums(1),f=1;nums(2),f=2;nums(3),f=3;allNums=[nums.f]
此代码返回
allNums=1 2 3
如果要使用相同的操作处理数组的每个元素,请使用arrayfun
作用例如,计算字段中的元素数F
数组中每个结构的s
:
numElements=arrayfun(@(x)numel(x.f),s)
语法@(十)
创建匿名函数。此代码调用呆火驼
数组中每个元素的函数s
例如努梅尔(s(1.f)
,并返回
数量=1 3 9
有关信息,请参阅: