是否有更简单的命令来计算矢量投影? 我改为使用以下内容:
x = np.array([ 3, -4, 0])
y = np.array([10, 5, -6])
z=float(np.dot(x, y))
z1=float(np.dot(x, x))
z2=np.sqrt(z1)
z3=(z/z2**2)
x*z3
最佳答案
也许这就是你真正想要的:
np.dot(x, y) / np.linalg.norm(y)
这应该给出矢量x
到矢量y
的投影 - 参见 https://en.wikipedia.org/wiki/Vector_projection 。或者,如果您想计算 y
到 x
的投影,则将分母中的 y
替换为 x
上述方程的(范数
)。
编辑:正如 @VaidAbhishek 评论的那样,上面的公式适用于标量投影。要获得矢量投影,请将标量投影乘以第一个矢量投影到的矢量方向上的单位矢量。那么公式可以修改为:
y * np.dot(x, y) / np.dot(y, y)
用于将x
向量投影到y
上。
关于python - 使用python计算矢量投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55226011/