Matrix Mata中的块对角矩阵

Matrix Mata中的块对角矩阵,matrix,stata,Matrix,Stata,我想使用Mata创建块对角矩阵。文档中有三个矩阵的示例: blockdiag(Z1, blockdiag(Z2,Z3)) blockdiag(Z1, blockdiag(Z2, blockdiag(Z3,Z4))) blockdiag(Z1, blockdiag(z2, blockdiag(Z3, blockdiag(Z4,Z5)))) 我不清楚这是否可以扩展到更多矩阵: blockdiag(Z1, blockdiag(Z2,Z3)) blockdiag(Z1, blockdiag(Z2,

我想使用Mata创建块对角矩阵。文档中有三个矩阵的示例:

blockdiag(Z1, blockdiag(Z2,Z3))
blockdiag(Z1, blockdiag(Z2, blockdiag(Z3,Z4)))
blockdiag(Z1, blockdiag(z2, blockdiag(Z3, blockdiag(Z4,Z5))))
我不清楚这是否可以扩展到更多矩阵:

blockdiag(Z1, blockdiag(Z2,Z3))
blockdiag(Z1, blockdiag(Z2, blockdiag(Z3,Z4)))
blockdiag(Z1, blockdiag(z2, blockdiag(Z3, blockdiag(Z4,Z5))))

或者如果可以编写一些循环结构来更有效地完成矩阵。感谢您的建议/见解。

您只需尝试一下即可。这只是嵌套
blockdiag()
,它可以工作:

mata:

A = (1,2 \ 3,4)
B = (5,6 \ 7,8)
C = (9,10 \ 11,12)
D = (13,14 \ 15,16)

AB = blockdiag(A,B)

ABC = blockdiag(A, blockdiag(B,C))

ABCD = blockdiag(A, blockdiag(B, blockdiag(C,D)))

AB

ABC

ABCD

end