Element-wise product in Simulink
Afficher commentaires plus anciens
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 commentaires
TAB
le 22 Août 2018
For element-wise multiplication (Hadamard product) in Matlab using ".*", both matrix dimesions must be same.
How can it work in Matlab ?
Ryan Takatsuka
le 22 Août 2018
Modifié(e) : Ryan Takatsuka
le 22 Août 2018
Walter Roberson
le 23 Août 2018
R2016b and later implemented automatic expansion as if you had written bsxfun()
Ryan Takatsuka
le 23 Août 2018
Walter Roberson
le 23 Août 2018
I wonder if you could get somewhere switching between sample based and frame based ?
Réponses (1)
madhan ravi
le 27 Déc 2023
0 votes
Desired can be achieved using For Each or For Iterator subsystem
Catégories
En savoir plus sur Simulink Functions dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!