【发布时间】:2012-03-16 06:06:02
【问题描述】:
假设我有三个不同的 2x2 子矩阵,我想在 Matlab 中创建一个大的 6x6 矩阵,其中三个子矩阵出现在对角线上,所有其他值都是 0。如何在不输入所有零的情况下做到这一点明确地?我刚开始学习 MatLab,我真的是个新手。如果有人可以帮助我,我将不胜感激!后来我必须用更多的矩阵来做这个,输入所有的零变得很痛苦!
【问题讨论】:
假设我有三个不同的 2x2 子矩阵,我想在 Matlab 中创建一个大的 6x6 矩阵,其中三个子矩阵出现在对角线上,所有其他值都是 0。如何在不输入所有零的情况下做到这一点明确地?我刚开始学习 MatLab,我真的是个新手。如果有人可以帮助我,我将不胜感激!后来我必须用更多的矩阵来做这个,输入所有的零变得很痛苦!
【问题讨论】:
假设你的矩阵命名为M1、M2、M3,写成blkdiag(M1, M2, M2)。如果您的任何矩阵是稀疏的,那么结果也是如此。否则会很稠。
【讨论】:
你可以使用
A=zeros(6,6)
创建一个所有数组为零的 6*6 矩阵。
【讨论】:
还可以定义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 矩阵。有点长,但它有效。喜欢另一种选择。
【讨论】: