Frequency of data occurrence using histc
Mostrar comentarios más antiguos
I have a matrix called data which is 40*40*50 and I want to find all the distinct numbers in the matrix and count their occurrences. This code below seems to work when data is 40*40*39 or smaller, but as soon as I try to run the code on the entire data matrix it starts giving 0.001 as the frequency for all of the unique occurrences
% code
out = [unique(data),histc(data(:),a)]
plot(a, histc(data(:),a));
I know that using histc is not recommended, but it was the easiest way I could find to do this.
Thanks for any and all help.
1 comentario
Megan
el 18 de Oct. de 2019
what is data?
Respuestas (2)
Guillaume
el 10 de Oct. de 2018
I presume that your numbers are integer (otherwise, you're playing dangerous games using unique with floating point values), in which case:
out = histcounts(data, 'BinMethod', 'integers');
2 comentarios
Edward Jahoda
el 10 de Oct. de 2018
Guillaume
el 10 de Oct. de 2018
"some information on why its dangerous"
See the output of
unique([0.3, 0.1+0.1+0.1])
If you want 6 digits of precision, I would do this:
out = histcounts(floor(data * 1e6), 'BinMethod', 'integers');
to move back to integer bins.
Bruno Luong
el 10 de Oct. de 2018
0 votos
You might take a look at uniquetol()
Categorías
Más información sobre Multirate Signal Processing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!