Element-wise product in Simulink
Mostrar comentarios más antiguos
I would like to perform an element-wise multiplication (Hadamard product) between 2 matrices in Simulink. The "multiply" block only allows for element-wise multiplication when the dimensions of both arguments are equal. For example, I would like to perform the following in Simulink (which works in MATLAB):
a = [1,2,3
4,5,6
7,8,9];
b = [1,2,3];
c = a.*b; % element-wise multiplication [3X3] x [1X3]
The only method I have found that works in Simulink is to copy each row of the b vector to produce 2 matrices that have the same dimensions:
a = [1,2,3
4,5,6
7,8,9];
b = [1,2,3
1,2,3
1,2,3];
c = a.*b;
This method is not ideal because my matrices are very large and I am trying to avoid duplicating the b vector to save memory.
6 comentarios
TAB
el 22 de Ag. de 2018
For element-wise multiplication (Hadamard product) in Matlab using ".*", both matrix dimesions must be same.
How can it work in Matlab ?
Ryan Takatsuka
el 22 de Ag. de 2018
Editada: Ryan Takatsuka
el 22 de Ag. de 2018
Walter Roberson
el 23 de Ag. de 2018
R2016b and later implemented automatic expansion as if you had written bsxfun()
Ryan Takatsuka
el 23 de Ag. de 2018
Walter Roberson
el 23 de Ag. de 2018
I wonder if you could get somewhere switching between sample based and frame based ?
Respuestas (1)
madhan ravi
el 27 de Dic. de 2023
0 votos
Desired can be achieved using For Each or For Iterator subsystem
Categorías
Más información sobre Simulink en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!