Matrix multiplication with logical values error
26 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Camilo A.
el 31 de Oct. de 2016
Editada: Massimo Zanetti
el 31 de Oct. de 2016
I have this matrix:
M =
0 3 0 0
0 2 0 0
2 0 3 4
0 4 0 2
And I call these vectors:
I=~(any(3==M'))', J=~any(3==M)
I =
0
1
0
1
J =
1 0 0 1
Why I cant multiplicate "I*J"? And how can I fix it?
I*J
Error using *
Both logical inputs must be scalar.
To compute elementwise TIMES, use TIMES (.*) instead.
I want this result:
ans =
0 0 0 0
1 0 0 1
0 0 0 0
1 0 0 1
Thanks
0 comentarios
Respuesta aceptada
Massimo Zanetti
el 31 de Oct. de 2016
Editada: Massimo Zanetti
el 31 de Oct. de 2016
For logical matrices matrix multiplication doesn't apply (because it is not logical operation). To get your Dyadic product, cast to double:
dyd = double(I)*double(J)
NOTE: matrix product is not fully supported for integer classes in MATLAB, so casting to integer types (to save memory) won't work too..
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!