Count the number of same elements in an array
341 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi given a vector
V = [ 1 2 4 3 4 2 3 5 6 4 5 6 8 4 2 3 5 7 8 5 3 1 3 5 7 8 9 5 3 2 4 6 7 8]
I would like to count how many times the value 1,2,3,4,5,6,7,8,9 are repeated inside V, and obtain a vector that report this values:
C = [2 4 6 5 6 3 3 4 1]
where 1 is repeated 2 times, 2 is repetead 4 times, 3 is repeated 6 times and so on..
0 commentaires
Réponse acceptée
madhan ravi
le 10 Sep 2019
Modifié(e) : madhan ravi
le 10 Sep 2019
[~,~,ix] = unique(V);
C = accumarray(ix,1).'
Plus de réponses (3)
Vitek Stepien
le 14 Août 2021
Modifié(e) : Vitek Stepien
le 14 Août 2021
I found this function extremely useful, and doing exactly what you need:
V = [ 1 2 4 3 4 2 3 5 6 4 5 6 8 4 2 3 5 7 8 5 3 1 3 5 7 8 9 5 3 2 4 6 7 8];
[gc,grps] = groupcounts(V'); % <- need column vector here
grps'
gc'
Where grps lists the unique values in order, and gc provides the count of each unique values found in v.
This is very similar to madhan ravi's accumarray, but even simpler.
P.S. I turned gc and grps into row vectors only for compactness of the post, it's purely aesthetical. However groupcounts requires a column vector, not a row.
0 commentaires
Hugo Diaz
le 28 Nov 2020
I use sparse(V(:),V(:), 1) for large arrays with missing indices.
0 commentaires
Voir également
Catégories
En savoir plus sur Multidimensional Arrays 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!