Use of kron with more than two matricies

18 visualizaciones (últimos 30 días)
Ashton Linney
Ashton Linney el 25 de Mzo. de 2020
Comentada: Matt J el 25 de Mzo. de 2020
I have four 4x4 matricies called: ox, ru, cr, po.
I have been successful in using the Kronecker tensor product for two of the matricies, I being a 4x4 identity matrix.
mat = kron(I,ox) + kron(ru,I);
However, when I try doing the same with all four matricies...
mat = kron(I,I,I,ox) + kron(I,I,ru,I) + kron(I,cr,I,I) + kron(po,I,I,I);
I get an error saying 'Too many input arguments.'
Is here a way to achieve the result for four matricies?
Thank you.

Respuesta aceptada

Matt J
Matt J el 25 de Mzo. de 2020
Editada: Matt J el 25 de Mzo. de 2020
One way would be to use my KronProd class
as follows,
kp=@(A,B,C,D) sparse(KronProd{D,C,B,A});
mat = kp(I,I,I,ox) + kp(I,I,ru,I) + kp(I,cr,I,I) + kp(po,I,I,I);
  2 comentarios
Ashton Linney
Ashton Linney el 25 de Mzo. de 2020
Thank you Matt! I have used the class and it has achieved what I was hoping for perfectly.
Matt J
Matt J el 25 de Mzo. de 2020
You're welcome. You could also do it without the class, as follows,
kp=@(A,B,C,D) kron(kron(A,B),kron(C,D));
mat = kp(I,I,I,ox) + kp(I,I,ru,I) + kp(I,cr,I,I) + kp(po,I,I,I);

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Shifting and Sorting Matrices en Help Center y File Exchange.

Productos


Versión

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by