Сначала приведем пример с двумя матрицами 2x2 на большой матрице 5x5:
import numpy as np
M = np.zeros((5,5))
M1 = np.matrix([[1,2],[3,4]])
M2 = np.matrix([[1,2],[3,4]])
M[:2,:2] += M1
M[1:3, 1:3] += M2
M
выходы
array([[ 1., 2., 0., 0., 0.],
[ 3., 5., 2., 0., 0.],
[ 0., 3., 4., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]])
В общем, если у вас есть матрица KxK с нулями M
и K-r + 1 rxr matrices
в некотором индексируемом, вы можете сделать
for i in range(K-r+1):
M[i+r:i+r] += matrices[i]