在Boost.Accumulator中,您可以将样本添加到累加器,然后从累加器中提取统计量。例如:
acc(1.)
acc(2.)
acc(3.)
cout << mean; // 2该库有许多更复杂的统计量,如skewness、kurtosis或p_square_cumulative_distribution。
我想做的是这样的:
acc(1.)
acc(2.)
acc(3.)
std::cout << mean(acc); // 2
acc.pop() // withdraw the first value (1.)
std::cout << mean(acc); // 2.5pop()将以先进先出的方式工作。我正在尝试做的是在滑动时间窗口内以在线(增量)的方式计算我的数据的统计数据。
累加器必须在内部保存所有的值。
我可以自己做,但我总是喜欢先检查现有的库,可能有一些算法我不知道,当数据传入或传出时,它会智能地计算数量。
发布于 2012-09-26 09:36:05
您可能只需要将所有样本保存在一个向量中,然后在每次计算时从向量中累积它们。如下所示:https://stackoverflow.com/a/7616783/219136
https://stackoverflow.com/questions/12593119
复制相似问题