ブースト アキュムレータを使用して、ベクトルである変数の統計を計算したいと考えていました。これを行う簡単な方法はありますか。最もばかげたことを使用することは不可能だと思います:
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