Element wise (.*) in Simulink for two matrices with different dimensions
2 views (last 30 days)
Show older comments
Hammadi Jaiem
on 27 Feb 2023
Edited: Fangjun Jiang
on 27 Feb 2023
Let Anxm and Bnx1 be two matrices with different dimensions
On Matlab: element-wise multiplication ie. A.*B = a Cnxm Matrix with no errors.
Example:
[1 2 3; 4 5 6;] .* [1; 0] = [1 2 3; 0 0 0]
However on Simulink If I use the Product block set on element-wise multiplication on A and B I get mismatch widths or dimensions Error.
Note that If I used a Matlab function Block on Simulink that calls A.*B. I am able to get the result I need. but I am looking for a solution that does not use the matlab function Block. Please share any solution you might think of.
Thanks!
0 Comments
Accepted Answer
Fangjun Jiang
on 27 Feb 2023
Edited: Fangjun Jiang
on 27 Feb 2023
a=[1 2 3; 4 5 6];
b=[1; 0];
a.*b
This is a change made in MATLAB in R2016b when implicit expansion is introduced. Prior to R2016b, it will cause a "size mismatch" error.
Simulink does not have similar change to make it be supported by its blocks, as far as R2022b.
To make a block diagram work, and with your existing data "b", you will have to expand it yourself through another block
c=ones(1,3);
a.*(b*c)
0 Comments
More Answers (0)
See Also
Categories
Find more on Math Operations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!