У меня есть матрицы 3, 3X3, хранящиеся в массивах numpy. Я хочу получить продукт, чтобы вычислить матрицу вращения.Получить матричный продукт из 3-х матриц
В настоящее время, что я делаю это 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]])
http://docs.scipy.org/doc/numpy/reference/generated/numpy.multiply.html –
Это дает правильный результат? Пример может помочь. «3D-матрицы» могут быть неоднозначными. Является ли форма 3x3 или 2x3x4? Или что-то другое. – hpaulj
* «3D-матрицы, хранящиеся в массивах numpy» * Что * тип *, они, 'matrix' или' ndarray'? (Проверьте 'type (a)'.) Если они являются объектами 'matrix', то да,' * 'является матричным умножением. Если они являются объектами 'numpy.ndarray', то' * 'является элементарным умножением. Чтобы сделать матричное умножение в этом случае, используйте метод 'dot':' rotation_matrix = a.dot (b) .dot (c) '. (Вы также можете использовать 'dot' с объектами' matrix'.) –