2024-03-28 09:51:47 发布
网友
我想计算一组角度的加权平均值。在
在this Question中,有一个如何计算平均值的答案 如this page所示。在
现在我想知道如何计算加权平均数。 也就是说,对于每个角度都有一个权重(权重总和为1)
0.25度,0度 0.5度,20度 0.25度,90度
加权平均值应该是32度(如果我没弄错的话)。在
根据你的申请,这个问题有不同的答案。如上所述,您可能需要规范化您的值,您可能需要有符号的角度,或者您可能不希望。除非你知道角度生成函数是什么,否则可能没有唯一的答案。在
这对我来说是一个足够的问题(在几何方面工作),我编写了自己的角度类。在
好吧,我的方法是把这些值乘以权重:
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
似乎工作正常。我得考虑好的测试数据。在
根据你的申请,这个问题有不同的答案。如上所述,您可能需要规范化您的值,您可能需要有符号的角度,或者您可能不希望。除非你知道角度生成函数是什么,否则可能没有唯一的答案。在
这对我来说是一个足够的问题(在几何方面工作),我编写了自己的角度类。在
好吧,我的方法是把这些值乘以权重:
似乎工作正常。我得考虑好的测试数据。在
相关问题 更多 >
编程相关推荐