Sub-Matrices in a bigger matrix

1 view (last 30 days)
Rengin
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)
  2 Comments
Rengin
Rengin on 19 Jul 2019
Thank you for the answer! Do you also know how to implement other sub-matrices in this big matrix (please see e.g. A12, A13, B21...etc. in the figure on the attcahments) ?
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,[]);

Categories

Find more on Data Distribution Plots in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!