one case can not be initiatated when plotting using switch-case

1 view (last 30 days)
when running the following code, case n=0.6 can not be implemented.
for n=0.2:0.2:0.8
switch n
case 0.2
h1=plot(1:3,sin(1:3)+n,'-.xr');
case 0.4
h2=plot(1:3,sin(1:3)+n,'-.xg');
case 0.6
h3=plot(1:3,sin(1:3)+n,'-.xk');
case 0.8
h4=plot(1:3,sin(1:3)+n,'-.xb');
end
hold on;
end
however, when I change the range of n from 0.2:0:2:0.8 to 1:4, everthing is Ok! I dont know why ,if anyone can help explain, thanks a lot!
for n=1:4
switch n
case 1
h1=plot(1:3,sin(1:3)+n);
case 2
h2=plot(1:3,sin(1:3)+n);
case 3
h3=plot(1:3,sin(1:3)+n);
case 4
h4=plot(1:3,sin(1:3)+n);
end
hold on;
end
legend('1','2','3','4')

Accepted Answer

per isakson
per isakson on 19 May 2012
!!! floating point arithmetic suffers from rounding errors !!!
Try: format hex
On my system your example works, but
for 0.0 : 0.3 : 1
does not
  3 Comments

Sign in to comment.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots 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!