How can I get "least frequent" number from a vector?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Sandy
am 26 Jun. 2014
Kommentiert: Simão Pedro da Graça Oliveira Marto
am 30 Jul. 2019
I know that "mode" is used to get the most frequent number in a vector. Is there any function that returns the "least frequent" number?
For example, a vector: 1 1 2 2 3 3 4 5 5 5 returns 4 since this number only appears once and all others appear more than once.
I guess I can solve this problem use "unique" and "hist", but I am just wondering if there is any better solution than that.
Thank you very much.
0 Kommentare
Akzeptierte Antwort
Jos (10584)
am 26 Jun. 2014
Option 1: You can copy the code from mode.m and replace the function max by the function min on line 130 (in R2014a). Edit the help text accordingly, and save.
Option 2.
V = [2 2 1 1 4 5 5 5]
uv = unique(V)
n = histc(V,uv)
[m,i] = min(n)
minmode = uv(i)
2 Kommentare
Simão Pedro da Graça Oliveira Marto
am 30 Jul. 2019
In Option 1, in Matlab 2018b, you need to replace the max with a min in line 163, but also replace the "zeros" with "inf" in line 161.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Interactive Control and Callbacks 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!