Error in Logical Array multiplication
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I found this error in my code and I don't think it should be an error. Anyone know if this is a bug or has MatLab programmed things this way for some reason?
K>> a=true(5,1);
K>> b=true(5,1);
K>> a*b(1,1);
Error using *
Both logical inputs must be scalar.
To compute elementwise TIMES, use TIMES (.*) instead.
K>> c=rand(5,1)
K>> d=rand(5,1)
K>> c*d(1,1)
K>> ver
MATLAB Version: 8.3.0.532 (R2014a)
MATLAB License Number: STUDENT
Operating System: Mac OS X Version: 10.9.5 Build: 13F1911
...[elided for brevity, of no import on question -- dpb]...
0 Kommentare
Antworten (2)
dpb
am 4 Mai 2017
It is not a Matlab bug; it is owing to the definition of matrix multiplication not making sense for logical variables; the logical only makes sense on an element-wise calculation.
0 Kommentare
Star Strider
am 4 Mai 2017
Numerical multiplication is analogous to logical and, so you can do this:
a = true(5,1);
b = true(5,1);
c = a & b(1,1);
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!