0

列ベクトルy=[4;6;2;9;5;1]としi=[4,2,1]、インデックスのベクトルとします。どういうわけかiをyに「適用」して取得したい[9,6,4]。または少なくとも[4;2;0;9;0;0]

forループでこれを行う方法は明らかにあります。このサイトの誰かから、MATLABでforループを使用しないようにアドバイスされました。ここで使用できる論理演算子はありますか?理想的には、yをそのインデックスの関数として扱い、yを関数としてiに適用できます。これは可能ですか、それとも古い信頼できるforループを使用する必要がありますか?

4

1 に答える 1

1

単純:

y(i)

結果を返します[9 6 4]

インデックス リストの一部ではないすべての要素をゼロに設定するには、指定した要素をコピーします。

out = zeros(size(y));
out(i) = y(i);
于 2013-02-19T21:01:04.760 に答える