Numpy ValueError: shapes (4,4) and (3,) not aligned: 4 (dim 1) != 3 (dim 0)
Numpy ValueError: shapes (4,4) and (3,) not aligned: 4 (dim 1) != 3 (dim 0)
我想通过 numpytestarray 中的旋转矩阵旋转向量 vc,但我得到一个 ValueError。
这是我的代码(
减少到必需品)
import numpy as np
vc = np.array([0,0,1])
numpytestarray = np.array([[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]])
new_vc = numpytestarray.dot(vc)
print(new_vc)
我该如何解决这个问题?
你的旋转矩阵和向量应该大小相同,例如:
- 大小为 2x2 的旋转矩阵对应于二维向量 [x, y]
的二维旋转
- 大小为 3x3 的旋转矩阵对应于 3D 向量 [x, y, z]
的 3D 旋转
您的矢量 vc 是 3D 的 [0, 0, 1]
,但是您尝试使用大小为 4x4 的旋转矩阵在 4 个维度上旋转它。
您需要更改矢量大小:
import numpy as np
vector = np.array([0,0,0,1])
rotation_matrix = np.array([
[-1, 0, 0, 0],
[0, -1, 0, 0],
[0, 0, -1, 0],
[0, 0, 0, -1]])
rotated = rotation_matrix.dot(vector)
print(rotated) # [0, 0, 0, -1]
或旋转矩阵大小:
import numpy as np
vector = np.array([0,0,1])
rotation_matrix = np.array([
[-1, 0, 0],
[0, -1, 0],
[0, 0, -1]])
rotated = rotation_matrix.dot(vector)
print(rotated) # [0, 0, -1]
我想通过 numpytestarray 中的旋转矩阵旋转向量 vc,但我得到一个 ValueError。
这是我的代码( 减少到必需品)
import numpy as np
vc = np.array([0,0,1])
numpytestarray = np.array([[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]])
new_vc = numpytestarray.dot(vc)
print(new_vc)
我该如何解决这个问题?
你的旋转矩阵和向量应该大小相同,例如:
- 大小为 2x2 的旋转矩阵对应于二维向量 [x, y] 的二维旋转
- 大小为 3x3 的旋转矩阵对应于 3D 向量 [x, y, z] 的 3D 旋转
您的矢量 vc 是 3D 的 [0, 0, 1]
,但是您尝试使用大小为 4x4 的旋转矩阵在 4 个维度上旋转它。
您需要更改矢量大小:
import numpy as np
vector = np.array([0,0,0,1])
rotation_matrix = np.array([
[-1, 0, 0, 0],
[0, -1, 0, 0],
[0, 0, -1, 0],
[0, 0, 0, -1]])
rotated = rotation_matrix.dot(vector)
print(rotated) # [0, 0, 0, -1]
或旋转矩阵大小:
import numpy as np
vector = np.array([0,0,1])
rotation_matrix = np.array([
[-1, 0, 0],
[0, -1, 0],
[0, 0, -1]])
rotated = rotation_matrix.dot(vector)
print(rotated) # [0, 0, -1]