# vector discretization to sum of values in each bin

17 Ansichten (letzte 30 Tage)
Amit Ifrach am 4 Okt. 2021
Kommentiert: Matt J am 4 Okt. 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 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

Matt J am 4 Okt. 2021
Bearbeitet: Matt J am 4 Okt. 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).').'
result = 1×4
5 13 6 18
or
result=splitapply(@sum , data(valid) , findgroups(Y(valid)) )
result = 1×4
5 13 6 18
##### 2 KommentareKeine anzeigenKeine ausblenden
Amit Ifrach am 4 Okt. 2021
לק"י
thank you very much!!
Matt J am 4 Okt. 2021

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Convert Image Type finden Sie in Help Center und File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by