2014-02-26 65 views
0

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

blockdiag(Z1, blockdiag(Z2,Z3)) 

目前还不清楚我是否可以扩展到多个矩阵:

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

,或者一些循环结构可以写更有效完成矩阵。建议/见解表示赞赏。

回答

2

所有你需要做的就是尝试一下。这只是嵌套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