-------------------------------------
if (x)
disp('true');
else
disp('false');
end;
if (~x)
disp('true');
else
disp('false');
end;
----------------------------------------
For the case x=[0 0 0 0]
and for the case x=[0 1 0 1]

1 comentario

Adam
Adam el 13 de Mzo. de 2015
Editada: Adam el 13 de Mzo. de 2015
Can't you just run the code to find out what is displayed?
You should generally use either 'all' or 'any' around a vector of logicals in an if statement though to avoid unexpected behaviour.

Iniciar sesión para comentar.

 Respuesta aceptada

Stephen23
Stephen23 el 13 de Mzo. de 2015
Editada: Stephen23 el 22 de Mayo de 2015

0 votos

This is explained quite clearly in the if documentation: "An expression is true when its result is nonempty and contains only nonzero elements (logical or real numeric). Otherwise, the expression is false."
Which means:
  • [0,0,0,0] is false: all values are zero
  • [0,1,0,1] is false: some values are zero
  • ~[0,0,0,0]=[1,1,1,1] is true: contains only nonzero elements
  • ~[0,1,0,1]=[1,0,1,0] is false: some values are zero
Note that the definition defines a true expression as "contains only nonzero elements" but does not give an upper-limit to the number of nonzero elements.

Más respuestas (2)

David Shapiro
David Shapiro el 13 de Mzo. de 2015

0 votos

i did it but i did not understand why i got what i got. its a question from a quiz i had.
Image Analyst
Image Analyst el 13 de Mzo. de 2015

0 votos

The all zero case is obvious. x=[0 0 0 0] is false no matter how you look at it - no way it can be true.
But if you have a case like [1 2 0 1] or [0 1 0 1] or [1,2,3,4], it will be true only if ALL of the elements are non-zero.

2 comentarios

David Shapiro
David Shapiro el 13 de Mzo. de 2015
but what is the condition " if x" means?
Adam
Adam el 13 de Mzo. de 2015
In this case (a vector) it seems to be shorthand for
if ( all(x) )
though I never tend to use that shorthand myself as I prefer the explicit use of all or any when using logicals for an if statement.

Iniciar sesión para comentar.

Categorías

Productos

Etiquetas

Preguntada:

el 13 de Mzo. de 2015

Editada:

el 22 de Mayo de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by