Element-wise product in Simulink
古いコメントを表示
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 件のコメント
TAB
2018 年 8 月 22 日
For element-wise multiplication (Hadamard product) in Matlab using ".*", both matrix dimesions must be same.
How can it work in Matlab ?
Ryan Takatsuka
2018 年 8 月 22 日
編集済み: Ryan Takatsuka
2018 年 8 月 22 日
Walter Roberson
2018 年 8 月 23 日
R2016b and later implemented automatic expansion as if you had written bsxfun()
Ryan Takatsuka
2018 年 8 月 23 日
Walter Roberson
2018 年 8 月 23 日
I wonder if you could get somewhere switching between sample based and frame based ?
回答 (1 件)
madhan ravi
2023 年 12 月 27 日
0 投票
Desired can be achieved using For Each or For Iterator subsystem
カテゴリ
ヘルプ センター および File Exchange で Simulink Functions についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!