角度的加权平均
2 个回答
1
根据你的应用场景,这个问题的答案会有所不同。正如上面提到的,你可能需要对你的数值进行标准化,也可能需要使用带符号的角度,或者你可能不想这样做。除非你知道生成角度的函数是什么,否则可能没有一个唯一的答案。
对于我来说(因为我在做几何方面的工作),这个问题让我觉得不够简单,所以我自己写了一个角度类。
8
好的,我的尝试是把这些数值和权重相乘:
def circular_mean(weights, angles):
x = y = 0.
for angle, weight in zip(angles, weights):
x += math.cos(math.radians(angle)) * weight
y += math.sin(math.radians(angle)) * weight
mean = math.degrees(math.atan2(y, x))
return mean
看起来这样做是对的。我需要想一些好的测试数据。