假设我有一个向量,比如说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
答案 0 :(得分:4)
v = max(S-K, 0);
[填充空间足够长的空间]
答案 1 :(得分:2)
另一种选择:
v = (S-K).*(S>K);
答案 2 :(得分:0)
仅用于教育目的:
v = S - K;
v(v<=0) = 0;
请注意,这为您提供了一定的灵活性,您可以轻松地将最终0
替换为NaN
,或者通过将其替换为[]
来删除所有这些条目