[英]How to create a diagonal matrix from another matrix
我想从另一个矩阵创建一个块对角矩阵。 假设 H 矩阵是一个 4 x 4 矩阵,我想创建一个 5 x 5 矩阵,左上部分是 H 矩阵。 下底部分为5。矩阵中的其他部分都是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
通过查找所涉及的两个矩阵的大小来生成正确数量的零。 只写0
不会自行扩展。
H_new =[ H zeros(size(H,1),size(brm,2)); %brm=5
zeros(size(brm,1),size(H,2)) brm];
^ 适用于任何二维大小的H
和右下角矩阵 ( brm
):
您可以分配到预先分配的缓冲区:
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.