Function to find the more recurrent number
    6 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
Hye, I have a matrix 1 by (a big number, like 1000), and I would like to extract the element of the matrix that appears most of the time.
Can you help me?
0 commentaires
Réponse acceptée
  Friedrich
    
 le 8 Août 2011
        Hi,
i think the hist function can help here:
%create some random numbers between 1 and 20
a = ceil(rand(100,1)*20);
%put them in as much bin as different numbers exists
n = hist(a,numel(unique(a)));
%show the histogram
hist(a,numel(unique(a)));
%number appears most
element = find(n == max(n))
%numel(find(a==element)) should return the same as max(n)
2 commentaires
  Friedrich
    
 le 8 Août 2011
				You have to do:
>> Y_un = unique(Y);
>> n = hist(Y,numel(Y_un));
>> element = find(n == max(n));
>> most_occ = Y_un(element)
Plus de réponses (3)
  Paulo Silva
      
 le 8 Août 2011
        Another possible way
a=randi([1 20],1,1000);
u=unique(a);
[C,I]=max(arrayfun(@(x)sum(a==u(x)),1:numel(u)));
disp('The value that appears most times is:')
u(I)
disp('Number of times it appears:')
C
In case of having two values that appear the same number of times it will choose just one of them.
0 commentaires
  huda nawaf
 le 10 Août 2011
        hi, see it please,
X=[1 1 1 2 3 4 4 4 0]; >> v=mode(X) ??? No appropriate methods for function mode. . I need the mode which compute frequencies of appearing of number. thanks
Voir également
Catégories
				En savoir plus sur Adaptive Control dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




