代码之家  ›  专栏  ›  技术社区  ›  Chris

角度加权平均

  •  2
  • Chris  · 技术社区  · 15 年前

    我想计算一组角度的加权平均值。

    this Question ,有一个如何计算平均值的答案 如中所示 this page .

    也就是说,每个角度都有一个权重(权重之和为1)

    0.5度,20度

    加权平均值应该是32度。

    2 回复  |  直到 7 年前
        1
  •  5
  •   Chris    15 年前

    好吧,我的尝试是将值乘以权重:

    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
    

    正确工作。我得想想 好的

        2
  •  1
  •   peter.murray.rust    15 年前

    根据你的申请,这个问题有不同的答案。如上所述,您可能需要规格化您的值,您可能需要有符号的角度,或者您可能不希望。除非你知道角度生成函数是什么,否则可能没有唯一的答案。

    这是一个足够的问题,我(在几何工作)我写了自己的角度类。