Use of kron with more than two matricies

19 views (last 30 days)
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.

Accepted Answer

Matt J
Matt J on 25 Mar 2020
Edited: Matt J on 25 Mar 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 Comments
Ashton Linney
Ashton Linney on 25 Mar 2020
Thank you Matt! I have used the class and it has achieved what I was hoping for perfectly.
Matt J
Matt J on 25 Mar 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);

Sign in to comment.

More Answers (0)

Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!