Histogram, find edges for bins of same size

5 Ansichten (letzte 30 Tage)
Raphaël
Raphaël am 15 Mai 2018
Kommentiert: Raphaël am 15 Mai 2018
Hi,
I have an array filled with a lot of different number values. I want to classify those values. histcounts allows me to find evenly spaced bins with there edges.
What I'm interested though is finding the right uniform edges for my bins that will give me bins filled with the same number of values.
For exemple let's say I have those values I want to put in 3 bins :
A = [8 2 3 4 1 5 6 8 2 1]
The anwser would be :
bin1 = [1,3[ : 4 values
bin2 = [3,6[ : 3 values
bin3 = [6,9[ : 3 values
Is there a function doing that. I know how to do it with a big for loop but that will be pretty slow to calculate.
Thanks!
RMT

Akzeptierte Antwort

Image Analyst
Image Analyst am 15 Mai 2018
Sounds like homework - is it? Here's a hint. First sort your values with sort(), then use cumsum() and find() to find the bin edges closest to a uniform number of counts per bin. Pretty easy, but if you still need help, let me know.
  1 Kommentar
Raphaël
Raphaël am 15 Mai 2018
Not homework. Actually for research but I can always use help to better code things, like remembering that the sort function exists.
B = sort(A(:));
Edges = [B(1:length(B)/100:end)]; % 100ish bins
Edges(end) = B(end); % Making sure all data is including.
Should work fine, thanks. Now I just hope sort works fast enougth.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Data Distribution Plots finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by