У меня есть 3 следующих матрицы:
matrix1 = np.array(eval(der_input_LU[j]));
submatrix1 = matrix1[0:100][0:4]
matrix2 = invCrossMatrix
matrix3 = np.array(eval(der_input_LU[l]));
submatrix3 = matrix3[0:4][0:100];
с формой каждого из них:
print 'shape matrix1 = ', submatrix1.shape
print 'shape matrix2 = ', matrix2.shape
print 'shape matrix3 = ', submatrix3.shape
, которая печатает:
shape submatrix1 = (4, 100)
shape matrix2 = (4, 4)
shape submatrix3 = (4, 100)
Я ищудля выполнения матричного произведения между этими 3 матрицами.Я пытался использовать np.linalg.multi_dot
так:
matFinal = np.linalg.multi_dot([submatrix1,matrix2,submatrix3])
Но я получаю следующую ошибку:
invCrossMatrix = [[ 2.76704670e-09 0.00000000e+00 0.00000000e+00 0.00000000e+00]
[ 0.00000000e+00 6.82633333e-06 -1.65769406e-19 -2.12753150e-12]
[ 0.00000000e+00 -1.65769406e-19 6.82633333e-06 -3.31538864e-19]
[ 0.00000000e+00 -2.12753150e-12 -3.31538864e-19 1.36526667e-05]]
Traceback (most recent call last):
File "program1.py", line 1497, in <module>
map(integ_LU_cross, g_LU(i))
File "program1.py", line 1436, in integ_LU_cross
function_A = aux_fun_LU_cross(way, ecs, I1[0], I1[1], I1[2])
File "program1.py", line 1369, in aux_fun_LU_cross
submatrix3 = matrix3[0:4][0:100];
IndexError: too many indices for array
Как видите, я пытался соблюдать порядок: (100,4)*(4,4)*(4,100)
но это не работает.
Соблюдаю ли я правильные размеры для использования функции multi_dot
?Я не могу найти источник моей ошибки.
приветствуются любые предложения или замечания,