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!