IF statements with zero
Show older comments
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 Comments
Fangjun Jiang
on 21 Oct 2011
You can use {}Code format next time.
Lisa Collins
on 23 Oct 2011
Accepted Answer
More Answers (1)
Jan
on 21 Oct 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).
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!