IF statements with zero
Mostrar comentarios más antiguos
Does matlab have a problem with the number zero? I am learning the basics and trying out an if statement in an m-file called sorttemp to sort ones and zeros in a vector to become either 14 or 19 , but why are all my answers 19...?
EDU>> clear
EDU>> a = [ 0 0 1 1 0 0 ]
a =
0 0 1 1 0 0
EDU>> sorttemp
b =
19 19 19 19 19 19
EDU>>
%sorttemp
n = 1:6;
if a(1,n) <= 0.5;
b(1,n) = 14;
else b(1,n) = 19
2 comentarios
Fangjun Jiang
el 21 de Oct. de 2011
You can use {}Code format next time.
Lisa Collins
el 23 de Oct. de 2011
Respuesta aceptada
Más respuestas (1)
Jan
el 21 de Oct. de 2011
The actual question is: Why are all b set to 19.
n = 1:6;
if a(1,n) <= 0.5
This means explicitely:
if [0, 0, 1, 1, 0, 0] <= 0.5
Now Matlab performs the comparison elementwise:
if [true, true, false, false, true, true]
Finally if needs a single value to decide for a branch, therefore in includes an all automatically:
if all([true, true, false, false, true, true])
No, not all of these values are true, therefore if uses the else branch:
b(1, 1:6) = 19
All b are set to 19.
NOTE: To be exact if inserts: all(condition) && ~isempty(condition).
Categorías
Más información sobre Startup and Shutdown en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!