带有句柄类的Matlab Arrayfun

时间:2012-05-09 23:20:30

标签: matlab

假设我有一个带有方法SetProperty的句柄类的1x2对象数组。我可以使用arrayfun为每个类调用SetProperty方法,以及用于设置属性值的向量吗?

2 个答案:

答案 0 :(得分:3)

您还可以设计该类,以便对SetProperty的调用进行矢量化:

 class Foo < handle
      methods(Access=public)
            function SetProperty(this,val)
                 assert(numel(this)==numel(val));
                 for i=1:numel(this)
                      this(i).prop = val(i);
                 end
            end
      end
end

然后,您可以创建一个向量并直接调用该方法:

    f = repmat(Foo(),[1 2]);
    f.SetProperty( [5 3]);

答案 1 :(得分:1)

是的,你可以:

arrayfun(@(x,y)x.SetProperty(y), yourHandleObjects, theValues)