私が望むような関数を作成するのに問題があります。私は長さNのベクトルを受け入れるとNxN行列を生成する無名関数を作成しようとしています。私は行列の各要素(すなわち、ループ)を設定したいと思います。具体的には、短い例: N = 2;
Qjk = @(x,y) x * y;
for j = 1:N
for k = 1:N
Q(j,k) [email protected](x
合計または要素ごとの乗算に対して、(A、dim)またはprod(A、dim)演算と同様に、シーケンシャル行列乗算を行う方法を検索しました。例えば : A = arrayfun(@(x) rand(5), 1:n, 'UniformOutput', false);
P = A{1} * A{2} * ... * A{n}; % <-- search for an elegant way to do
私の関数では、独立した要素の賢明な行列乗算がたくさんあります。それらを並行して計算する方法はありますか? これらはすべて非常に単純な操作ですが、実行時間の70%はこれらの部分のコードです。この機能は何百万回も呼び出されるためです。 function [r1,r2,r3]=backward(A,B,C,D,E,F,r1,r2,r3)
r1=A.*B;
r2=C.*D;
r3=E*F;
end
私のコードは正しく実行されなければならないと思いますが(論理的ですが)、最後のループでは減分命令が機能せず、プログラムは無限ループに入ります。あなたはあなたのプログラムのデータセクションにバッファ命名結果を入れている ; multi-segment executable file template.
data segment
matrix1 db 1,2,3,4,5,6,7,8,9
mat