Matrix/Array Multiplication problem in Simulink
8 次查看(过去 30 天)
显示 更早的评论
Hi Guys,
I desperately need help resolving a matrix/array multiplication problem in simulink. I have a dynamic system - a channel model precisely built in simulink and wish to implement the following matrix/array multiplication:
a(i,j,k)*b(j,k);
Can some please advise how to get this done.
Many thanks.
Odiri
0 个评论
采纳的回答
Kaustubha Govind
2011-4-26
Use the Product block from the Simulink->Math Operations library and set "Multiplication" parameter to "Matrix(*)".
3 个评论
Kaustubha Govind
2011-4-26
Sorry about that - I missed the part about 'a' being a 3D array. One way of doing this is to iterate through 'a' by using the Iterated Assignment (look for section on http://www.mathworks.com/help/toolbox/simulink/slref/assignment.html) block inside a For Iterator subsystem, to get each a(i,:,:) which should be a 2D matrix. Now you can use the Product block to perform element-wise multiplication (not matrix multiplication as previously suggested) between a(i,:,:) and b.
Regarding your other question about not being able to import n-D signals using From Workspace block, note that you need to define the workspace variable either as a "Structure with Time" or Simulink.Timeseries object.
更多回答(1 个)
Anisleidy Gonzalez
2019-11-1
You can use the Hadamart product, changing the dimensions of the 2D matrix or the best option is transforming the 3D matrix to a tensor and use the tensor toolbox
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Array and Matrix Mathematics 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!