0

私は3次元マトリックスを持っています

sigma = zeros(3, 3, 1000)

および単一のマトリックス

result = [0.5 0.5 0.5; 0.2 0.2 0.2; 0.1 0.1 0.1]

私の質問は次のようになります:「シグマ」の3次元に沿ったすべての単一行列に私の行列「結果」を追加する最も効果的な方法は何ですか?

現在、1000個の行列すべてをループして、1つずつ追加しています。Matlabに最適化された方法はありますか?

ありがとう!

4

2 に答える 2

4

使用bsxfun

bsxfun(@plus, sigma, result)

シングルトン次元に沿って小さい方の行列を自動的に複製し、他の行列と一致させます。

于 2013-03-19T18:28:19.983 に答える
2

sigma + repmat(result、[1,1,1000])

一般に、関数を渡す呼び出し(ループよりも効率的ですが)は、ネイティブコードのみを含む呼び出しほど内部的に最適化されていません。

于 2013-03-19T18:43:21.000 に答える