what's the difference between | and || in matlab??
448 views (last 30 days)
Show older comments
maha ismail
on 10 Dec 2014
Commented: Steve Van Hooser
on 2 Dec 2024 at 15:04
what's the difference between | and || in matlab??
0 Comments
Accepted Answer
More Answers (1)
Sean de Wolski
on 10 Dec 2014
Edited: Sean de Wolski
on 10 Dec 2014
| applies to each element in the array, || applies to a scalar condition:
[1 0 1] | [ 0 0 1]
v.
[1 0 1] || [ 0 0 1]
4 Comments
DGM
on 2 Dec 2024 at 14:52
Edited: DGM
on 2 Dec 2024 at 14:53
I hate to nitpick, but I'm bored and have a minor tweak to add:
The || is a scalar operator, and the | operator is elementwise; that's true. The problem is describing what's expected of an elementwise operator's output size (at least if we're going to explicitly describe it in the context of an ancient question).
Now if we're living in 2014, then the statement that the output is the same size as the input would be true. In the present day, the size of the output of an elementwise operator isn't necessarily the same size as the input. That's only the case when the two inputs are the same size.
Assuming that the inputs have compatible size, the output size is the maximum of input sizes (assuming we're using R2016b or newer (or are using bsxfun() in older versions)).
[1 0 1] | [0 0 1] % output is 1x3
[1 0 1] | [0 0 1].' % output is 3x3
Even without this addendum, I think that @Steve Van Hooser's comment is a more meaningful answer than the original. The short-circuit functionality is really secondary to the fact that || is scalar.
Steve Van Hooser
on 2 Dec 2024 at 15:04
Nice addition. I don't see how to give a thumbs up so I will do it in words.
See Also
Categories
Find more on Matrices and Arrays 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!