#python #python-2.7 #numpy
Вопрос:
Мне нужно умножить следующие матрицы, которые имеют разные размеры:
a= [[[1. 1. 1. 1. 1. 1.]]]
b= [[[ 0.50709072 0.50709072 0.50709072 0.50709072 0.50709072
0.50709072]
[ 0.50156421 0.50156421 0.50156421 0.50156421 0.50156421
0.50156421]
[ 0.4934983 0.4934983 0.4934983 0.4934983 0.4934983
0.4934983 ]
[ 0.49774671 0.49774671 0.49774671 0.49774671 0.49774671
0.49774671]]
[[-0.50156421 -0.50156421 -0.50156421 -0.50156421 -0.50156421
-0.50156421]
[ 0.83307796 0.83307796 0.83307796 0.83307796 0.83307796
0.83307796]
[-0.16423768 -0.16423768 -0.16423768 -0.16423768 -0.16423768
-0.16423768]
[-0.16565156 -0.16565156 -0.16565156 -0.16565156 -0.16565156
-0.16565156]]
[[-0.4934983 -0.4934983 -0.4934983 -0.4934983 -0.4934983
-0.4934983 ]
[-0.16423768 -0.16423768 -0.16423768 -0.16423768 -0.16423768
-0.16423768]
[ 0.83840351 0.83840351 0.83840351 0.83840351 0.83840351
0.83840351]
[-0.16298763 -0.16298763 -0.16298763 -0.16298763 -0.16298763
-0.16298763]]
[[-0.49774671 -0.49774671 -0.49774671 -0.49774671 -0.49774671
-0.49774671]
[-0.16565156 -0.16565156 -0.16565156 -0.16565156 -0.16565156
-0.16565156]
[-0.16298763 -0.16298763 -0.16298763 -0.16298763 -0.16298763
-0.16298763]
[ 0.83560924 0.83560924 0.83560924 0.83560924 0.83560924
0.83560924]]]
c= [[4.55965106 4.55965106 4.55965106 4.55965106 4.55965106 4.55965106]]
Формы матриц являются
u_1.форма, s_1.форма, vh_1.форма ((4, 4, 6), (1, 6), (1, 1, 6))
Я получил массаж с ошибкой:
matmul: Входной операнд 1 имеет несоответствие в своем основном измерении 0, с сигнатурой gufunc (n?,k),(k,m?)->(n?,m?) (размер 1 отличается от 6)
Как я могу умножить такие матрицы ?
Комментарии:
1. Не могли бы вы, пожалуйста, добавить предполагаемый результат? Или какое именно матричное умножение (математически) вы хотите?
2. Какого рода умножение? Сообщение об ошибке создается
@
,np.matmul
. Это имеет очень конкретные правила для совместного использования 3d-массивов. Вы это читали? Для поэлементного умножения (использования*
) эти массивы должны работать. Но для@
этого вам придется подробно рассказать о том, что вы ожидаете, что произойдет.