我需要确定Python中两个n维向量之间的角度。例如,输入可以是两个列表,如下所示:[1,2,3,4]
和[6,7,8,9]
。
import math
def dotproduct(v1, v2):
return sum((a*b) for a, b in zip(v1, v2))
def length(v):
return math.sqrt(dotproduct(v, v))
def angle(v1, v2):
return math.acos(dotproduct(v1, v2) / (length(v1) * length(v2)))
注意:当向量的方向相同或相反时,这将失败。正确的实现在这里:https : //stackoverflow.com/a/13849249/71522
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句