# How to use a matrix of 12*12 to form a matrix of 96*96?

1 view (last 30 days)
S Priya on 22 Sep 2021
Edited: Jan on 23 Sep 2021
If B is a 12*12 matrix, and I want to place this B matrix as diagonal matrix of 96*96, How to form this 96*96 diagonal matrix?
Stephen23 on 22 Sep 2021

Jan on 22 Sep 2021
Edited: Jan on 23 Sep 2021
gLg = kron(eye(8), Lg)
% A small example:
X = [1,2; 3,4];
kron(eye(3), X)
ans = 6×6
1 2 0 0 0 0 3 4 0 0 0 0 0 0 1 2 0 0 0 0 3 4 0 0 0 0 0 0 1 2 0 0 0 0 3 4

Paul on 22 Sep 2021
It's too bad we can't do something like this:
B = [1 2;3 4]; repeats = 2; % use a smaller example
% R = blkdiag(repmat({B},1,repeats){:}) % throws error
and instead have to do this
R = blkdiag(struct('temp',repmat({B},1,repeats)).temp)
R = 4×4
1 2 0 0 3 4 0 0 0 0 1 2 0 0 3 4
Stephen23 on 22 Sep 2021
Simpler:
B = {[1,2;3,4]};
R = 2; % use a smaller example
M = blkdiag(B{ones(1,R)})
M = 4×4
1 2 0 0 3 4 0 0 0 0 1 2 0 0 3 4

### Categories

Find more on Operating on Diagonal Matrices 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!

Translated by