我想用Mata创建一个块对角矩阵。三个矩阵的文档中有一个例子:
blockdiag(Z1, blockdiag(Z2,Z3))
我不清楚这是否可以扩展到更多的矩阵:
blockdiag(Z1, blockdiag(Z2, blockdiag(Z3,Z4)))
blockdiag(Z1, blockdiag(z2, blockdiag(Z3, blockdiag(Z4,Z5))))
或者是否可以编写一些循环结构以更有效地完成矩阵。建议/见解赞赏。
答案 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