Frequency of data occurrence using histc
Ältere Kommentare anzeigen
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 Kommentar
Megan
am 18 Okt. 2019
what is data?
Antworten (2)
Guillaume
am 10 Okt. 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 Kommentare
Edward Jahoda
am 10 Okt. 2018
Guillaume
am 10 Okt. 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
am 10 Okt. 2018
0 Stimmen
You might take a look at uniquetol()
Kategorien
Mehr zu Multirate Signal Processing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!