我想使用 boost 累加器来计算一个向量变量的统计数据。有没有一种简单的方法可以做到这一点。我认为不可能使用最愚蠢的东西:
using namespace boost::accumulators;
//stuff...
accumulator_set<vector<double>, stats<tag::mean> > acc;
vector<double> some_vetor;
//stuff
some_vector = doStuff();
acc(some_vector);
也许这很明显,但我还是尝试了。:P
我想要的是有一个累加器来计算一个向量,它是许多向量的分量的平均值。有没有简单的出路?
编辑:
我不知道我是否完全清楚。我不想要这个:
for_each(vec.begin(), vec.end(),acc);
这将计算给定向量的条目的平均值。我需要的是不同的。我有一个会吐出向量的函数:
vector<double> doSomething();
// this is a monte carlo simulation;
我需要多次运行并计算这些向量的向量平均值:
for(int i = 0; i < numberOfMCSteps; i++){
vec = doSomething();
acc(vec);
}
cout << mean(acc);
我希望 mean(acc) 本身是一个向量,其条目 [i] 将是累积向量的条目 [i] 的平均值。
在 Boost 的文档中有关于此的提示,但没有明确说明。而且我有点笨。:P