what will be displayd and why?

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

Adam
Adam on 13 Mar 2015
Edited: Adam on 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.

Sign in to comment.

 Accepted Answer

Stephen23
Stephen23 on 13 Mar 2015
Edited: Stephen23 on 22 May 2015
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.

More Answers (2)

David Shapiro
David Shapiro on 13 Mar 2015
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 on 13 Mar 2015
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 Comments

but what is the condition " if x" means?
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.

Sign in to comment.

Products

Tags

Asked:

on 13 Mar 2015

Edited:

on 22 May 2015

Community Treasure Hunt

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

Start Hunting!