Ваш код для умножения серии матриц вместе должен работать. Вот пример использования вашего метода с некоторыми простыми матрицами.
import numpy as np
matrices = []
matrices.append(np.eye(3,dtype=float))
matrices.append(np.matrix('1.0,2.0,3.0;4.0,5.0,6.0;7.0,8.0,8.0'))
matrices.append(np.eye(3,dtype=float))
matrices.append(np.linalg.inv(np.matrix('1.0,2.0,3.0;4.0,5.0,6.0;7.0,8.0,8.0')))
matrix = matrices[0]
for m in matrices[1:]:
matrix = np.matmul(matrix, m)
print(matrix)
directmul = np.matmul(matrices[1],matrices[3])
print(np.subtract(matrix,directmul))
Ваша проблема в другом месте: возможно, как вы заполняете список матриц, или как вы заполняете матрицы. Вы пробовали unit testing
в своем коде? Вы попробовали отладчик python?