Histogram, find edges for bins of same size

4 visualizaciones (últimos 30 días)
Raphaël
Raphaël el 15 de Mayo de 2018
Comentada: Raphaël el 15 de Mayo de 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

Respuesta aceptada

Image Analyst
Image Analyst el 15 de Mayo de 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 comentario
Raphaël
Raphaël el 15 de Mayo de 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.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Data Distribution Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by