Element-wise product in Simulink
Ältere Kommentare anzeigen
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 Kommentare
TAB
am 22 Aug. 2018
For element-wise multiplication (Hadamard product) in Matlab using ".*", both matrix dimesions must be same.
How can it work in Matlab ?
Ryan Takatsuka
am 22 Aug. 2018
Bearbeitet: Ryan Takatsuka
am 22 Aug. 2018
Walter Roberson
am 23 Aug. 2018
R2016b and later implemented automatic expansion as if you had written bsxfun()
Ryan Takatsuka
am 23 Aug. 2018
Walter Roberson
am 23 Aug. 2018
I wonder if you could get somewhere switching between sample based and frame based ?
Antworten (1)
madhan ravi
am 27 Dez. 2023
0 Stimmen
Desired can be achieved using For Each or For Iterator subsystem
Kategorien
Mehr zu Simulink Functions finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!