获得3个矩阵的矩阵乘积

时间:2016-07-14 14:36:20

标签: python numpy matrix-multiplication rotational-matrices

我有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]])

1 个答案:

答案 0 :(得分:1)

您可以尝试使用dot,如下所示:

final= numpy.dot(tilt_matrix, (numpy.dot(rotation_matrix, original))

需要考虑的事项:

  1. numpy.dot是一种功能,不是一种方法(不能调用A.dot(B),而是调用np.dot(A, B));
  2. 订单很重要 - 如果您没有得到正确的结果,请尝试更改订单。有时您需要首先翻译然后旋转,有时相反。取决于每个案例;
  3. 对于2D矩阵,左矩阵列编号必须与右矩阵行编号的大小相同。