【发布时间】:2012-10-31 13:17:41
【问题描述】:
我正在用 Cocoa 编写程序,但我认为解决方案必须非常通用。
我有一组由 3D 向量表示的点。每个点都有一个分配给它的权重。权重在 0 到 1 的范围内。所有权重的总和不等于 1。
应该如何从这样的集合中计算加权平均点?
编程或纯数学解决方案都会有所帮助。 当然,如果 Cocoa 有一些特定的工具来解决这个任务,我将非常感谢这些信息。
【问题讨论】:
标签: vector 3d point mean weighted
我正在用 Cocoa 编写程序,但我认为解决方案必须非常通用。
我有一组由 3D 向量表示的点。每个点都有一个分配给它的权重。权重在 0 到 1 的范围内。所有权重的总和不等于 1。
应该如何从这样的集合中计算加权平均点?
编程或纯数学解决方案都会有所帮助。 当然,如果 Cocoa 有一些特定的工具来解决这个任务,我将非常感谢这些信息。
【问题讨论】:
标签: vector 3d point mean weighted
简单地将所有按权重缩放的向量相加。最后,除以所有权重的总和。这与首先将所有权重归一化以总和为 1 具有相同的效果。
伪代码:
sum = [0, 0, 0]
totalWeights = 0
for each point p with associated weight w:
sum += p * w
totalWeights += w
mean = sum / totalWeights
【讨论】: