何度も繰り返されるコードに 2 つの for ループが埋め込まれています。私は物事をスピードアップしたい:
for i = 1:10
for j = 1:10
A(i,j) = B(i,j,D(i,j))*C(i,j);
end
end
ここで、D は B のインデックスである整数で構成されます。D に依存しない場合、for ループは要素単位の行列乗算に置き換えることができます。問題は、B をエレガントな方法で評価する方法です。SO と mathworks-pages を検索し、線形索引付けを試みましたが、これによりエラーが発生します。
d = reshape(D, 100, []);
b = reshape(B, 100, []);
arrayfun(@(x) b(x,d(x)), 1:100);
私は何を間違っていますか?2 つの for ループを置き換える方法はありますか?