Matrix/Array Multiplication problem in Simulink
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Odiri Oghre
el 26 de Abr. de 2011
Respondida: Anisleidy Gonzalez
el 1 de Nov. de 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 comentarios
Respuesta aceptada
Kaustubha Govind
el 26 de Abr. de 2011
Use the Product block from the Simulink->Math Operations library and set "Multiplication" parameter to "Matrix(*)".
3 comentarios
Kaustubha Govind
el 26 de Abr. de 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.
Más respuestas (1)
Anisleidy Gonzalez
el 1 de Nov. de 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 comentarios
Ver también
Categorías
Más información sobre Array and Matrix Mathematics en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!