假设我有n
- by - n
矩阵A
和n
- by - n
矩阵B
。我想创建一个块矩阵C
,其中包含N
矩阵A
块作为对角线,以及(N
- 1)矩阵B
块作为A
对角线下方的对角线。
这个link只给出了块对角线情况的答案,这些情况都很棒。现在我想添加一个块子对角线,我应该在Matlab中使用哪个命令?
非常感谢你的帮助。
答案 0 :(得分:1)
如果您知道如何在其对角线(大小为C
- by - A
)上创建一个nN
矩阵nN
,您还可以创建一个矩阵{ {1}}尺寸较小(D
- by - n(N-1)
),对角线上有n(N-1)
,那么您只需要在右边的子矩阵中添加B
D
:
C
或者,使用kron
:
C( (n+1):end, (n+1):end ) = C( (n+1):end, (n+1):end ) + D;
你最好在这里使用稀疏矩阵
C = kron( eye(n), A ) + kron( diag(ones(n-1,1), -1), B );