Function to find the more recurrent number
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
Friedrich
am 8 Aug. 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 Kommentare
Friedrich
am 8 Aug. 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)
Weitere Antworten (3)
Paulo Silva
am 8 Aug. 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 Kommentare
huda nawaf
am 10 Aug. 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
Siehe auch
Kategorien
Mehr zu Matrices and Arrays 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!