Quería usar acumuladores de impulso para calcular estadísticas de una variable que es un vector. ¿Hay una manera simple de hacer esto? Creo que no es posible usar la cosa más estúpida:¿Es posible usar acumuladores de refuerzo con vectores?
using namespace boost::accumulators;
//stuff...
accumulator_set<vector<double>, stats<tag::mean> > acc;
vector<double> some_vetor;
//stuff
some_vector = doStuff();
acc(some_vector);
tal vez esto es obvio, pero lo intenté de todos modos. : P
Lo que quería es tener un acumulador que calcule un vector que es la media de los componentes de muchos vectores. ¿Hay una salida fácil?
EDIT:
No sé si estaba completamente claro. No quiero esto:
for_each(vec.begin(), vec.end(),acc);
Esto calcularía la media de las entradas de un vector dado. Lo que necesito es diferente. Tengo una función que va a escupir vectores:
vector<double> doSomething();
// this is a monte carlo simulation;
Y necesito para ejecutar esto muchas veces y calcular el vectorial significa de esos vectores:
for(int i = 0; i < numberOfMCSteps; i++){
vec = doSomething();
acc(vec);
}
cout << mean(acc);
Y quiero decir (ACC) a ser un vector en sí, cuya entrada [i] sería el medio de las entradas [i] de los vectores acumulados.
Hay una pista sobre esto en los documentos de Boost, pero nada explícito. Y soy un poco tonto. : P
Mind blown. He usado bastante el Boost Acumulator y nunca aprendí que es compatible con tipos de muestra no escalares. – sehe