how to find the second most repeated value in vector
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
Accepted Answer
More Answers (4)
Walter Roberson
on 25 Aug 2017
3 votes
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))]
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
1 Comment
Ambati Sathvik
on 2 Jul 2020
Thank you very much
mary m
on 26 Aug 2017
0 votes
Categories
Find more on Programming 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!