想象一下简单的结构数组,比如说:
A = struct('x', {1 2 3}, 'y', {'a' 'b' 'c'});
要求所有这些数组元素的给定属性将提供如下内容:
>> A.x
ans =
1
ans =
2
ans =
3
现在,如果我直接在这个数组上显式调用subsref函数,它只检索第一个元素的属性:
>> builtin('subsref', A, substruct('.', 'x'))
ans =
1
为什么呢?是否有可能明确调用另一个内置方法来检索所有数组元素的属性?
答案 0 :(得分:3)
subsref
方法可以返回它,但不能像在解释器中获取它一样comma separated list。它将它们作为单独的输出参数返回,表示:
>> [a,b,c]=builtin('subsref', A(:), substruct('.', 'x'))
a =
1
b =
2
c =
3
如果您愿意,可以在单元格数组中捕获输出
>> [x{1:numel(A)}]=builtin('subsref', A(:), substruct('.', 'x'))
x =
[1] [2] [3]