-------------------------------------
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 commentaire

Adam
Adam le 13 Mar 2015
Modifié(e) : Adam le 13 Mar 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.

Connectez-vous pour commenter.

 Réponse acceptée

Stephen23
Stephen23 le 13 Mar 2015
Modifié(e) : Stephen23 le 22 Mai 2015

0 votes

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.

Plus de réponses (2)

David Shapiro
David Shapiro le 13 Mar 2015

0 votes

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 le 13 Mar 2015

0 votes

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 commentaires

David Shapiro
David Shapiro le 13 Mar 2015
but what is the condition " if x" means?
Adam
Adam le 13 Mar 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.

Connectez-vous pour commenter.

Produits

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by