a = b<0
9 views (last 30 days)
Show older comments
What is the meaning of this line?
...
a = b<0;
c = 3*a;
...
Is a IF condition?
0 Comments
Accepted Answer
Voss
on 22 Jan 2023
Edited: Voss
on 22 Jan 2023
a = b<0;
checks if b is less than 0 and stores the result in a.
If b is a scalar: if b is less than 0, then a will be true; otherwise a will be false.
If b is a non-scalar array: a will be a logical array the same size as b, with each element being true or false, depending on whether the corresponding element in b is less than 0 or not.
Examples:
b = 2;
a = b<0 % false
b = -2;
a = b<0 % true
b = 0;
a = b<0 % false
b = randn(3) % non-scalar array
a = b<0 % 3-by-3 logical array, true where b<0 and false elsewhere
Then the next line
c = 3*a;
multiplies a by 3 and stores it in c, so c will be an array the same size as a, with the value 3 where a is true and the value 0 where a is false.
Examples:
b = 2;
a = b<0; % false
c = 3*a
b = -2;
a = b<0; % true
c = 3*a
b = 0;
a = b<0; % false
c = 3*a
b = randn(3) % non-scalar array
a = b<0 % 3-by-3 logical array, true where b<0 and false elsewhere
c = 3*a
0 Comments
More Answers (1)
See Also
Categories
Find more on Operators and Elementary Operations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!