我在NumPy中有三个相同大小的方阵。我想把它们组合成一个块对角矩阵。
示例:
a1 = np.array([[1,1,1],[1,1,1],[1,1,1]])
a2 = np.array([[2,2,2],[2,2,2],[2,2,2]])
a3 = np.array([[3,3,3],[3,3,3],[3,3,3]])
r = np.array([[1,1,1,0,0,0,0,0,0],[1,1,1,0,0,0,0,0,0],[1,1,1,0,0,0,0,0,0],[0,0,0,2,2,2,0,0,0],[0,0,0,2,2,2,0,0,0],[0,0,0,2,2,2,0,0,0],[0,0,0,0,0,0,3,3,3],[0,0,0,0,0,0,3,3,3],[0,0,0,0,0,0,3,3,3]])
最好的办法是什么?
4条答案
按热度按时间cgvd09ve1#
linalg有一个block_diag函数来自动执行此操作
wh6knrhe2#
由于这些答案,
numpy
添加了一个block
函数oxf4rvwz3#
如果你想要这个特殊的数组
r
,也许最简单的方法是:如果
a1
,a2
,a3
可以是任意的二维数组,那么最简单的方法可能是:另一种较慢的方法是:
whlutmcx4#
对于那些想要制作包含
M
的对角矩阵N
次: