An Options pay-off question

1 次查看(过去 30 天)
Pallav Mishra
Pallav Mishra 2013-2-11
I am trying to create a scenario where x changes from 1 to 5 with an interval of 0.1. If x<1.5, y =1.5; if 1.5<=x<3; y=x; if x>3, y = 3. I need to plot y as a function of x.
The problem is that creating a nested if loop does not create the graph of the last loop. Here's my code:
for x = 1:0.1:5
if (x<1.5)
y = 1.5;
plot(x,y)
hold on
elseif (1.5<=x<3)
y=x;
plot(x,y)
else
y=3;
plot(x,y)
hold off
end
end
  1 个评论
Pallav Mishra
Pallav Mishra 2013-2-11
编辑:Walter Roberson 2013-2-11
Oh I got it..my elseif construct was wrong..my code should have been:
>> for x = 1:0.1:5
if (x < 1.5)
y = 1.5;
plot(x,y)
hold on
elseif (x >= 1.5) && (x < 3)
y = x;
plot(x,y)
else
y = 3;
plot(x,y)
end
end

请先登录,再进行评论。

回答(2 个)

Walter Roberson
Walter Roberson 2013-2-11
Right. MATLAB has no range-test operator.

Jan
Jan 2013-2-11

类别

Help CenterFile Exchange 中查找有关 MATLAB Coder 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by