Matlab で同じベクトルの外積を計算したい。代表的な例は次のとおりです。
x=rand(1e5,1);
sigma=x*x'-spdiags(x,0,length(x),length(x));
これをスピードアップする明白な方法はありますか?x*x' は対称行列ですが、Matlab がその情報を使用して高速化する方法を見つけていません。
編集:ループでこれを行う方法がありますが、まだ利点がわかりません:
for k=1:length(x)
sigma(k:length(x),k)=x(k).*x(k:length(x));
end
上記はスパース配列で機能する場合があります。