尝试使用另一个 stackoverflow 答案中的矢量角度公式,但无法打印角度
Trying to use vector angle formula from another stackoverflow answer but unable to get it to print angle
我正在尝试使用这个 SO 问题 () 中的代码来计算两个向量之间的角度。但是我无法获得 print/show
的角度
我试过从缩进和非缩进位置打印(angle_between)。我也从缩进和非缩进位置尝试了 return(angle_between) 。但是我没有包括我认为只是代码的解释。
import numpy as np
def unit_vector(vector):
np.linalg.norm(vector)
def angle_between(p_Sun, p_Titan):
v1_u = unit_vector(p_Sun)
v2_u = unit_vector(p_Titan)
return np.arccos(np.clip(np.dot(v1_u, v2_u), -1.0, 1.0))
print(angle_between(p_Sun, p_Titan))
我希望它以弧度为单位打印角度,但我却收到错误。
"TypeError: unsupported operand type(s) for *: 'NoneType' and 'NoneType'"
当我以不同的方式计算角度时(来自相同的 post 只是不同的评论,)我可以使用 print() function
并获得角度。但是,我不喜欢这种方法,因为它对某些向量对无效。
unit_vector函数应该写成:
def unit_vector(vector):
return vector / np.linalg.norm(vector)
目前,您的函数未返回任何内容,因此默认情况下 returns None。这就是为什么您会收到有关乘以 NoneTypes 的错误的原因。此外,它计算单个值,即范数。对于单位向量,您必须将当前向量除以范数。
希望对您有所帮助!
我正在尝试使用这个 SO 问题 () 中的代码来计算两个向量之间的角度。但是我无法获得 print/show
的角度我试过从缩进和非缩进位置打印(angle_between)。我也从缩进和非缩进位置尝试了 return(angle_between) 。但是我没有包括我认为只是代码的解释。
import numpy as np
def unit_vector(vector):
np.linalg.norm(vector)
def angle_between(p_Sun, p_Titan):
v1_u = unit_vector(p_Sun)
v2_u = unit_vector(p_Titan)
return np.arccos(np.clip(np.dot(v1_u, v2_u), -1.0, 1.0))
print(angle_between(p_Sun, p_Titan))
我希望它以弧度为单位打印角度,但我却收到错误。
"TypeError: unsupported operand type(s) for *: 'NoneType' and 'NoneType'"
当我以不同的方式计算角度时(来自相同的 post 只是不同的评论,)我可以使用 print() function
并获得角度。但是,我不喜欢这种方法,因为它对某些向量对无效。
unit_vector函数应该写成:
def unit_vector(vector):
return vector / np.linalg.norm(vector)
目前,您的函数未返回任何内容,因此默认情况下 returns None。这就是为什么您会收到有关乘以 NoneTypes 的错误的原因。此外,它计算单个值,即范数。对于单位向量,您必须将当前向量除以范数。 希望对您有所帮助!