'subsref' 对象数组的行为
Behavior of 'subsref' for arrays of objects
想象一个简单的结构数组,比如:
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
为什么?是否有可能显式调用另一个内置方法来检索所有数组元素的 属性?
subsref
方法可以 return 它但不能像 comma separated list 在解释器中获得它的方式。它 return 将它们作为单独的输出参数,这意味着:
>> [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]
想象一个简单的结构数组,比如:
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
为什么?是否有可能显式调用另一个内置方法来检索所有数组元素的 属性?
subsref
方法可以 return 它但不能像 comma separated list 在解释器中获得它的方式。它 return 将它们作为单独的输出参数,这意味着:
>> [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]