我在Cocoa编写程序,但我认为解决方案必须非常普遍。
我有一组由3D矢量代表的点。每个点都有一个权重。权重在0到1的范围内。所有权重之和不等于1.
如何从这样的集合计算加权平均值?
程序化或纯数学解决方案都会有所帮助。 当然,如果Cocoa有一些特定的工具来解决这个任务,我将非常感谢这些信息。
答案 0 :(得分:2)
简单地总结按重量缩放的所有矢量。最后,除以所有权重的总和。这与将所有权重归一化为总和为1具有相同的效果。
的伪代码:
sum = [0, 0, 0]
totalWeights = 0
for each point p with associated weight w:
sum += p * w
totalWeights += w
mean = sum / totalWeights