Matrix/Array Multiplication problem in Simulink
8 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Odiri Oghre
il 26 Apr 2011
Risposto: Anisleidy Gonzalez
il 1 Nov 2019
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 Commenti
Risposta accettata
Kaustubha Govind
il 26 Apr 2011
Use the Product block from the Simulink->Math Operations library and set "Multiplication" parameter to "Matrix(*)".
3 Commenti
Kaustubha Govind
il 26 Apr 2011
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.
Più risposte (1)
Anisleidy Gonzalez
il 1 Nov 2019
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 Commenti
Vedere anche
Categorie
Scopri di più su Array and Matrix Mathematics in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!