从数组中设置对象数组中的属性

时间:2013-05-16 18:26:42

标签: arrays matlab oop

classdef MyObj
   properties
      A;
   end
end

%%

len = 5;
objArray = MyObj.empty(len,0);
for i=1:len
   objArray(i) = MyObj();
end

dataArray = [1 2 3 4 5];
% How do I set objArray.A to the values in dataArray?

基本上是关于Matlab语义的快速问题。 如何根据objArray.A中的索引设置每个dataArray值(不循环)?

我尝试了[objArray.A]objArray(:).AobjArray.A(:)等多种变体,但无法让它发挥作用。

PS:我使用的语言是 MATLAB

感谢。

1 个答案:

答案 0 :(得分:3)

如果我理解你在做什么,你可以通过以下方式为对象数组分配多个值:

values = num2cell(dataArray)
[objArray.A] = values{:}

>> objArray(1).A

ans =

     1

>> objArray(2).A

ans =

     2

>> objArray(3).A

ans =

     3

希望这有帮助!