Element-wise product in Simulink
Show older comments
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 Comments
TAB
on 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
on 22 Aug 2018
Edited: Ryan Takatsuka
on 22 Aug 2018
Walter Roberson
on 23 Aug 2018
R2016b and later implemented automatic expansion as if you had written bsxfun()
Ryan Takatsuka
on 23 Aug 2018
Walter Roberson
on 23 Aug 2018
I wonder if you could get somewhere switching between sample based and frame based ?
Answers (1)
madhan ravi
on 27 Dec 2023
0 votes
Desired can be achieved using For Each or For Iterator subsystem
Categories
Find more on Simulink in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!