同じサイズの2つの(大きな)ベクトルa=[0 0 0 0 0]
とb=[1 2 3 4 5]
と、{1、...、length(a)}の値を持つインデックスベクトルind=[1 5 2 1]
があります。私は多重度を含めa
からind
で宣言さb
のこれらのエントリを追加したい、あるサブアレイのベクトル化加算
for k = 1:length(ind)
a(ind(k)) = a(ind(k)) + b(ind(k));
end
% a = [2 2 0 0 5]
を計算したいと思います。
a(ind)=a(ind)+b(ind);
% a = [1 2 0 0 5]
はもちろん、はるかに高速ですが、複数回表示されるインデックスは無視されます。
上記のコードを高速化するにはどうすればよいですか?
複数回表示されるインデックスの予想される動作は何ですか?このインデックスの追加を1回だけ実行したいですか? – drorco
いいえ、表示される頻度でインデックスを追加したいと思います。上記forループのように。 – Julian
私はなぜ(ind)+ b(ind)が複数回出現するインデックスを無視するのか分かりません。 – GameOfThrows