how to find the second most repeated value in vector
50 views (last 30 days)
Show older comments
how to find the second most repeated value in vector x=[1 2 2 3 5 5 5] i use (mode ) to find the most repeated and frequency [m,f]=mode(x) m=5 the number repeated f=3 the freq.
now,i want to find the second repeated, can help me please
0 Comments
Accepted Answer
More Answers (4)
Walter Roberson
on 25 Aug 2017
Delete all the copies of m out of x and take the mode again.
1 Comment
Apoorva Srivastava
on 16 Jun 2019
Edited: Apoorva Srivastava
on 16 Jun 2019
% For a vector x:
mode(x(find(x ~= mode(x))))
% In general, if x is a matrix (valid from R2018b onwards)
mode(x(find(x ~= mode(x, 'all'))), 'all')
Andrei Bobrov
on 25 Aug 2017
[g,v] = findgroups(x);
ii = accumarray(g(:),1);
jj = find(ii > 1);
out = [v(jj(2)), ii(jj(2))]
0 Comments
alexander Mcghee
on 17 Sep 2019
X = [1 1 1 1 1 5 5 5] ;
m = mode(X) % -> m=1
X(X==m) = NaN ;
m = mode(X) % -> m=5
See Also
Categories
Find more on Detection in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!