在Mata中阻止对角矩阵

时间:2014-02-26 18:49:04

标签: matrix stata

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

blockdiag(Z1, blockdiag(Z2,Z3))

我不清楚这是否可以扩展到更多的矩阵:

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

或者是否可以编写一些循环结构以更有效地完成矩阵。建议/见解赞赏。

1 个答案:

答案 0 :(得分: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