MATLAB - 创建包含子矩阵的矩阵

3

假设我有三个不同的2x2子矩阵,我想在Matlab中创建一个大的6x6矩阵,在该矩阵的对角线上出现这三个子矩阵,而其他所有值都为0。如何在不显式输入所有零的情况下完成此操作?我刚开始学习MatLab,实际上是一个初学者。如果有人能帮助我解决这个问题,我将非常感激!以后我还需要使用更多的矩阵来完成此任务,手动输入所有的零已经变得很痛苦了!

3个回答

7
假设您的矩阵命名为M1M2M3,请写下blkdiag(M1, M2, M2)。如果您的任何一个矩阵是稀疏的,则结果也将是稀疏的。否则它将是密集的。

太好了!非常感谢!我之前不知道有blkdiag命令 :) - Kristian

0
此外,你可以定义a=zeros(6);,然后开始输入a(1:2,1:2)=a11, a(3:4,3:4)=a22,a(5:6,5:6)=a33,其中a11、a22和a33是你的2×2矩阵。有点长,但它可以工作。像另一个选项一样。

-1

您可以使用

A=zeros(6,6)

来创建一个所有数组为零的6*6矩阵。


这是一个不完整的答案,对于对角块没有解决方案。 - Danil Asotsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接