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

3 visualizaciones (últimos 30 días)
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')

Respuesta aceptada

per isakson
per isakson el 19 de Mayo de 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 comentarios
Lin LI
Lin LI el 19 de Mayo de 2012
I add ' ' to 02, and now it works.
Lin LI
Lin LI el 19 de Mayo de 2012
Is that the reason?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating, Deleting, and Querying Graphics Objects en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by