Function to find the more recurrent number
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuesta aceptada
Friedrich
el 8 de Ag. de 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 comentarios
Friedrich
el 8 de Ag. de 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)
Más respuestas (3)
Paulo Silva
el 8 de Ag. de 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 comentarios
huda nawaf
el 10 de Ag. de 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
Ver también
Categorías
Más información sobre Matrices and Arrays en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!