У меня есть 3 матрицы 3X3, хранящиеся в массивах numpy. Я хочу получить продукт, чтобы вычислить матрицу вращения.
В настоящее время я делаю rotation_matrix = (a * b * c)
, но я не знаю, правильный ли это способ умножения матриц - должен ли я использовать .dot
Я также пробовал с rotation_matrix = pre_rotation.dot(result_pre_tilt).dot(post_rotation)
и rotation_matrix = np.multiply(result_pre_tilt, pre_rotation, post_rotation)
a = np.array(
[[-0.25091924 0. -0. ]
[-0. -0.35485339 0. ]
[ 0. 0. 0.70710678]])
b = np.array(
[[ 0.10040533 -0. 0. ]
[ 0. 0.28953198 -0. ]
[ 0. 0. 0.31056766]])
c = np.array(
[[ 6.12323400e-17 0.00000000e+00 -1.00000000e+00]
[ 0.00000000e+00 1.00000000e+00 0.00000000e+00]
[ 1.00000000e+00 0.00000000e+00 6.12323400e-17]])
3D matrices
может быть двусмысленным. Форма 3х3 или 2х3х4? Или что-то другое. - person hpaulj   schedule 14.07.2016matrix
илиndarray
? (Отметьтеtype(a)
.) Если этоmatrix
объекты, то да,*
— это умножение матриц. Если они являютсяnumpy.ndarray
объектами, то*
является поэлементным умножением. Для умножения матриц в этом случае используйте методdot
:rotation_matrix = a.dot(b).dot(c)
. (Вы также можете использоватьdot
сmatrix
объектами.) - person Warren Weckesser   schedule 14.07.2016matrix
. Используйте методdot
(или, если вы используете блестящие новые версии Python и numpy, используйте@
:rotation_matrix = a @ b @ c
). - person Warren Weckesser   schedule 14.07.2016