vector discretization to sum of values in each bin
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Amit Ifrach
el 4 de Oct. de 2021
Comentada: Matt J
el 4 de Oct. de 2021
לק"י
Hi guys, I'm looking a way to discretize vector values to bins. I want to have bins that contain the sum of values of incidents each of them contain.
example:
lets take the matlab's discretize example:
data = [1 1 2 3 6 5 8 10 4 4]
edges = 2:2:10
so, edges is:
edges = 1×5
2 4 6 8 10
Y = discretize(data,edges)
so, Y is:
Y = 1×10
NaN NaN 1 1 3 2 4 4 2 2
what I want to get is a vector that sums all the values of incidents that fall into each bin. for this example:
desiredvector=[5, 13, 6, 18]
as you can see, I have 4 bins (as specified by edges), and in each bin i got the sum of values of the incidents that fall into it.
I hope I explained it well.. thanks any way!
Amit.
0 comentarios
Respuesta aceptada
Matt J
el 4 de Oct. de 2021
Editada: Matt J
el 4 de Oct. de 2021
data = [1 1 2 3 6 5 8 10 4 4];
edges = 2:2:10;
Y = discretize(data,edges);
valid=isfinite(Y);
result=accumarray(findgroups(Y(valid)).' , data(valid).').'
or
result=splitapply(@sum , data(valid) , findgroups(Y(valid)) )
2 comentarios
Matt J
el 4 de Oct. de 2021
You're welcome, but please Accept-click the answer to certify that it resolved your question.
Más respuestas (0)
Ver también
Categorías
Más información sobre Axis Labels en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!