Clear Filters
Clear Filters

An Options pay-off question

1 view (last 30 days)
Pallav Mishra
Pallav Mishra on 11 Feb 2013
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 Comment
Pallav Mishra
Pallav Mishra on 11 Feb 2013
Edited: Walter Roberson on 11 Feb 2013
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

Sign in to comment.

Answers (2)

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

Jan
Jan on 11 Feb 2013

Categories

Find more on MATLAB Coder in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!