Counting frequency of occurrence in matrix
18 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Guan Zhao
le 23 Oct 2012
Commenté : Brian Derstine
le 31 Août 2021
Good day,
I am attempting to count the number of times each number in a matrix occurred in the matrix.
For example, suppose I have a matrix;
x =
22 23 24 23
24 23 24 22
22 23 23 23
I want an output which will tell me 22 occurred 3 times, 23 occurred 6 times, and 24 occurred 2 times. The actual matrix is larger in size.
Is there a specific function which returns such values or are there any other ways I can resolve this challenge?
3 commentaires
Jerry Olup
le 20 Juin 2017
Let x be your vector. Something like this can save you an unnecessary toolbox:
xx = unique(x); % temp vector of vals
x = sort(x); % sorted input aligns with temp (lowest to highest)
t = zeros(size(xx)); % vector for freqs
% frequency for each value
for i = 1:length(xx)
t(i) = sum(x == xx(i));
end
Then the t vector shows freqs of the sorted, unique vector x.
m_vdv
le 10 Mai 2018
Hi, is it also possible to do this without using 'unique' and 'sort'? For example with only using a for loop and/or if loop? Thanks in advance.
Réponse acceptée
Andrei Bobrov
le 23 Oct 2012
x =[
22 23 24 23
24 23 24 22
22 23 23 23];
a = unique(x);
out = [a,histc(x(:),a)];
8 commentaires
Plus de réponses (3)
Thomas
le 23 Oct 2012
x=[22 23 24 23
24 23 24 22
22 23 23 23];
[a,b]=hist(x,unique(x));
out=[b' sum((a),2)]
0 commentaires
abdelrahim hashem
le 15 Nov 2017
x = [22 23 24 23; 24 23 24 22; 22 23 23 23];
un_x = unique(x);
for i = 1:length(un)
un(i), length(find(x == un_x(i)))
end
0 commentaires
Voir également
Catégories
En savoir plus sur Matrix Indexing 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!