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;

请注意,这为您提供了一些灵活性,您可以轻松地替换最后0NaN条目,甚至通过将其替换为来删除所有这些条目[]

于 2013-01-31T16:58:23.947 回答