依存関係の for ループのベクトル化について複雑な問題を抱えています。
X1
長さ のベクトル、長さn1
のX2
ベクトルn2
、x行列、F1
x行列、x行列としましょう。表記はインデックス ベクトルです。ntrapz は、台形数値積分の関数です。次のように行列を計算したいと思います。N1
n1
F2
N2
n2
Q
N1
N2
p...
Q
for i1=1:N1
F1_13tmp=F1(i1, p1_13)'; % '
F1_13=F1_13tmp(:,ones(n2,1));
for i2=1:N2
F2_13 = F2(i2, p2_13);
Q_13_13 = Q(p1_13, p2_13);
Q(i1,i2) = Q(i1,i2) +
ntrapz(X2(p2_13), ntrapz(X1(p1_13)', Q_13_13.*F1_13).*F2_13);
end
end
問題は、更新によって次の反復Q(i1,i2)
の値が変更されることです。Q_13_13 = Q(p1_13, p2_13)
そのような for ループをベクトル化できるかどうか知りたいです。そうでない場合、コードを高速化するためのアイデアはありますか?
よろしくお願いいたします。