我想从另一个矩阵中创建一个块状对角线矩阵.假设H矩阵是一个4乘4的矩阵,我想创建一个5乘5的矩阵,左上角是H矩阵,下角是5,矩阵中其他部分都是0。矩阵中的其他部分都是0.我该怎么做呢?下面的代码是我试过的代码,但是没有用。
H_new= [H,0;0,5];
谢谢。
您可以使用 blkdiag:
>> H = reshape(1:16, 4, 4)
H =
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
>> H_new = blkdiag(H, 5)
H_new =
1 5 9 13 0
2 6 10 14 0
3 7 11 15 0
4 8 12 16 0
0 0 0 0 5
你可以分配到一个预先分配的缓冲区。
H = eye(4);
K = 5;
output = zeros(size(H) + size(K));
output(1:size(H, 1), 1:size(H, 2)) = H;
output(size(H, 1) + 1:end, size(H, 2) + 1:end) = K;
生成正确的数量 零 通过找出所涉及的两个矩阵的大小。只需写出 0
不自行展开。
H_new =[ H zeros(size(H,1),size(brm,2)); %brm=5
zeros(size(brm,1),size(H,2)) brm];
^适用于任何二维尺寸的 H
和右下角矩阵(brm
):