Я хотел использовать импульсные аккумуляторы для вычисления статистики переменной, которая является вектором. Есть простой способ сделать это. Я думаю, что невозможно использовать самую тупую вещь:Можно ли использовать импульсные аккумуляторы с векторами?
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
Я хотел бы иметь аккумулятор, который будет вычислять вектор, являющийся средним компонентом многих векторов. Есть ли легкий выход?
EDIT:
Я не знаю, если бы я был полностью ясно. Я не хочу этого:
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);
И я хочу, имею в виду (в соотв) с быть самим вектором, чей вход [i] был бы средством записей [i] накопленных векторов.
Theres намек об этом в документах Boost, но ничего конкретного. И я немного тупой. : P
Разум взорван. Я использовал Boost Accumulator совсем немного и никогда не подходил к тому, что он поддерживает нескалярные типы образцов. – sehe 2014-09-03 09:10:05