Sub-Matrices in a bigger matrix

20 views (last 30 days)
Rengin on 19 Jul 2019
Edited: Jan on 19 Jul 2019
Dear Users,
Imagine that I have 4 square matrices such as A11, B11, C11 and D22.
I want to insert them as diagonal elements of a bigger matrix (please see the pic on the attchments).
However, I don't know the size of the bigger matrix. I will find it out when I insert all sub-matrices. Is there any easy way to do it?
Thanks in advance!

Accepted Answer

madhan ravi
madhan ravi on 19 Jul 2019
blkdiag(A11, B11, C11, D22)
madhan ravi
madhan ravi on 19 Jul 2019
m = size(A11,1);
Wanted = blkdiag(A11, B11, C22, D22);
Wanted(1:m,m+1:end) = [A12,A13,A14];
Wanted(m+1:m*2,1:m) = B21

Sign in to comment.

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 19 Jul 2019
For matrices with the same size. Let [m,n] - size of each matrix, q - number of matrices in the vertical of a large matrix:
M = cat(3,A11,B21,..,A12,B11,..,A13,..,C11,..D22);% A11, B21 and etc - your small matrices
out = reshape(permute(reshape(M,m,n,q,[]),[1,3,2,4]),q*m,[]);

Community Treasure Hunt

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

Start Hunting!

Translated by