私はSetPropertyメソッドを持つハンドルクラスの1x2オブジェクト配列を持っていると言います。 arrayfunを使用して、クラスごとにSetPropertyメソッドを呼び出すことができます。また、プロパティ値を設定するためのベクトルも使用できますか?ハンドルクラスのMatlab Arrayfoon
3
A
答えて
1
はい、次のことができます。
arrayfun(@(x,y)x.SetProperty(y), yourHandleObjects, theValues)
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]);
+0
私も以前これを使ってきました。私は、関数に渡されるものを制御できるので、今、arrayfunを使用する方がより意欲的です。これはネストされたクラスがたくさんあるときは問題でした。自分が望んだクラスやそのスーパークラスを自分自身が参照しているかどうかはわかりませんでした。 – krapht
+0
@AndrewAshworthあなたが言っていることは面白いと思う。あなたは例を挙げることができますか? (自分の教育目的のために) –
関連する問題
- 1. DLLハンドルクラスをスライスします
- 2. matlabのハンドルクラスから継承したメソッドを非表示にすることはできますか?
- 3. は、MATLABでMATLAB
- 4. - Matlabの
- 5. Matlabの
- 6. Matlabの
- 7. MATLABは、MATLABで変数名
- 8. MATLAB
- 9. MATLAB
- 10. MATLAB
- 11. MATLAB
- 12. Matlab
- 13. MATLAB
- 14. Matlabのハミングコード
- 15. スレッドのMatlabコード
- 16. MatlabのGUIエラー
- 17. Matlabのスペクトログラム例
- 18. matlabの相関
- 19. Matlabアレイのノイズリダクション
- 20. Matlabのテキストプログレスバー
- 21. MatlabのFindPeaks
- 22. MathWorks社のMATLAB
- 23. スコープのmatlab get_param
- 24. matlabのRSAコード
- 25. Matlabの3Dプロット
- 26. matlabのWavプレーヤー
- 27. MatlabのNimbusルックアンドフィール
- 28. gslのmatlab mvnrnd
- 29. MatlabのPrewittフィルタ
- 30. matlabアプリケーションのテスト
ありがとう!これは簡単ですが、私はなぜ構文に非常に問題があったのかわかりません。 – krapht