- For scalar values && is (in general) faster than & because it only evaluates the right argument if the left argument is TRUE.
- Defensive programming: by using && you assert that its arguments are scalar. If later they are erroneously not scalar then && will stop with an error (rarher than continuing in some unknown state).
- Clarity to the reader
using "&" with logical array
4 views (last 30 days)
Show older comments
oN is a array Logical
col is array Logical
why is not correct using &?
K>> class(oN)
ans =
'logical'
K>> class(col)
ans =
'logical'
0 Comments
Accepted Answer
Stephen23
on 13 Feb 2024
Edited: Stephen23
on 13 Feb 2024
"why is not correct using &?"
Who says that it is not "correct" ? What you show is not a code error (underlined in red), it is a recommendation (underlined in orange)
Benefits:
If you want to ignore this recommendation then right-click and select one of the "ignore" options.
3 Comments
Stephen23
on 13 Feb 2024
Edited: Stephen23
on 13 Feb 2024
"The array is a logical type so the correct use of the operator is to use the "&" for logical operations.
You just invented that rule yourself: there is no rule saying that scalar values must use &.
In contrast the static code parser is written by the people who actually develop MATLAB.
""&&" if they are scalars but this is not the data type in question"
MATLAB does not have a "scalar" data type, they are all arrays:
Most likely the data in question is scalar: assuming that k is a scalar subscript then both of the arguments to && will be scalar, and the recommendation is completely appropriate. That is most likely what the static parser has detected. Your invention of non-existent data types and non-existent rules does not help you.
Question: what size do oN(k) and col(k) have?
More Answers (0)
See Also
Categories
Find more on Multidimensional Arrays 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!