文档

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

此示例显示如何访问和处理非标度结构数组的多个元素中的数据:

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

有关信息,请参阅: