我有一个很大的对象列表(更具体地说是Backbone Models),它有一个值和一个时间。简化我的对象如下所示:
{
"time": {moment.js object},
"value": {float value}
}
不同对象之间的时间并不总是相同的,所以我不能只是遍历所有对象,将它们加在一起并将其除以对象的数量。
如何计算此数据的正确平均值?
答案 0 :(得分:2)
问题是你如何解释观察之间的“漏洞”。如果你同意点之间的温度等于这两个观测值的平均值(变化是线性的),这可能是解决方案:
tempObservation o0 { t = 0, v = 100} // time, value
tempObservation o1 { t = 1, v = 120}
tempObservation o2 { t = 2, v = 125}
...
tempObservation on { t = n, v = 145}
temp =
[ 0.5 * ( o0.v + o1.v)] * ( o1.t - o0.t) +
[ 0.5 * ( o1.v + o2.v)] * ( o1.t - o0.t) +
...
[ 0.5 * ( on-1.v + on.v)] * ( on.t - on-1.t)
average_temp = temp /( on.t - o0.t)