2016-11-15 1 views
0

私は行列の特定の要素にアクセスしたい場合は、私は括弧でインデックスを使用します。一時的なマトリックスをどのように索引付けするのですか?

m = calc_stuff(...); 
x = m(index1, index2); 

はしかし、私は多くの場合、1行のコードでそれをしたい、このように:

x = calc_stuff(...)(index1, index2); 

どうすれば表現できますか?

具体例:

m = cumsum(rand(10,4)); 
x = m(10, 1); 

上記のスクリプトは、ランダム変数のいくつかの和を算出し、Iは、結果行列のうちの一例値を取ります。

どうすれば1行で記述できますか?以下は動作しません:

x = cumsum(rand(10,4))(10, 1); 

Error:()-indexing must appear last in an index expression.

をここで、私は必ずしも確率変数を含まない、任意の計算に適用される一般的な構文をしたいです。

+0

Octaveではこれを行うことができますが、Matlabでは 'subsref'を使う必要があります。完全な説明は@Sardar_Usamaリンクをチェックしてください –

答えて

0

FileExchangeの "Functional Programming Constructs"を参照してください。

特に、ファイルparen.mは必要な処理を行います。だから、おそらく、「()」の表記を直接ほどエレガントではない

x = paren(cumsum(rand(10,4)), 10, 1); 

を書きますが、それはあなたがそれを使用したい方法で、MATLABでサポートされていません。

関連する問題