Можно ли использовать аккумуляторы повышения с векторами?

Я хотел использовать повышающие аккумуляторы для вычисления статистики переменной, которая является вектором. Есть простой способ сделать это. Я думаю, что невозможно использовать самую глупую вещь:

  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

13
задан Rafael S. Calsaverini 12 February 2012 в 18:30
поделиться