Как преобразовать блоки в блочно-диагональную матрицу (NumPy)

У меня в 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]])

Как лучше всего это сделать?

12
задан Peter Smit 11 November 2010 в 12:11
поделиться