0

S=1:10 というベクトルと固定数 K=5 があるとします。次のコードをベクトル化する方法はありますか?

v=zeros(1:10);

for i=1:10
    if S(i)>K
        v(i)=S(i)-K;
    else 
        v(i)=0;
    end
end
4

3 に答える 3

4
v = max(S-K, 0);

[投稿を十分に長くするスペースフィラー]

于 2013-01-30T20:27:21.983 に答える
2

別のオプション:

v = (S-K).*(S>K);
于 2013-01-30T22:20:26.507 に答える
0

教育目的のみ:

v = S - K;
v(v<=0) = 0;

0これによりある程度の柔軟性が得られることに注意してください。最後のエントリを簡単に置き換えるNaNか、これらのエントリをすべて削除することもできます[]

于 2013-01-31T16:58:23.947 に答える