【发布时间】:2018-11-19 04:41:45
【问题描述】:
我有两个由 3d 向量(numpy 1D 数组)组成的矩阵,我需要逐行计算向量之间的角度,并将结果返回到 1d 数组中。我知道如何计算两个一维向量之间的角度。这样做的正确方法是什么?
*** 结果角度的单位是度数而不是弧度。
现在我有了这个:
import numpy as np
A = np.array([[1,0,0],
[0,1,0],
[0,0,1]])
B = np.array([[1,0,1],
[1,1,0],
[0,1,0]])
def angle(V1,V2):
"""
angle between vectors V1 and V2 in degrees using
angle = arccos ( V1 dot V2 / norm(V1) * norm(V2) ) *180/np.pi
"""
cos_of_angle = V1.dot(V2) / (np.linalg.norm(V1) * np.linalg.norm(V2))
return np.arccos(np.clip(cos_of_angle,-1,1)) * 180/np.pi
注意从 rad 到 deg 转换的比例项 180/np.pi。
我想要一个数组:
C = [ angle(A[0],B[0]) , angle(A[1],B[1])...... and so on]
如果有人可以提供帮助,我真的很感激。
【问题讨论】:
-
缩进和括号看起来不对。如果需要,请查看并进一步编辑。
-
已更正。谢谢@Divakar
标签: python numpy matrix vector angle