3

メソッド SetProperty を持つハンドル クラスの 1x2 オブジェクト配列があるとします。arrayfun を使用して、各クラスの SetProperty メソッドを呼び出し、プロパティ値の設定に使用するベクトルを使用できますか?

4

2 に答える 2

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]);
于 2012-05-10T06:53:10.053 に答える
1

はい、次のことができます。

arrayfun(@(x,y)x.SetProperty(y), yourHandleObjects, theValues)
于 2012-05-09T23:22:23.667 に答える