Python中两个n维向量之间的角度

彼得:

我需要确定Python中两个n维向量之间的角度。例如,输入可以是两个列表,如下所示:[1,2,3,4][6,7,8,9]

亚历克斯·马特利(Alex Martelli):
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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章