Counting the number of appearance of a value in a loop
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
federico nutarelli
le 6 Juil 2022
Commenté : Walter Roberson
le 6 Juil 2022
Hi everyone,
I have the following matrix called all_indices_pesi in matlab:
consisting of the first column being a column of zeros and ones and the second column a column of indices which possibly repeat within the vector. Now my aim is the following:
- I would like to count the number of times an index appear in column 2 (so for insstance how many times does the element 78818 appear in the second column? How many times doess 78824 appears? and so on...). Let's call it num_instances;
- I would like to count the number of timess that a certain index in column 2 has a value of 1 in column 1. Let's call it num_ones;
- I would like to see, for each unique element of column 2 the share "num_ones/num_instances" and project it into a 646x151 matrix in the places indicated by the unique indices in column 2
Thank you
0 commentaires
Réponse acceptée
Walter Roberson
le 6 Juil 2022
Modifié(e) : Walter Roberson
le 6 Juil 2022
[G, value] = findgroups(all_indices_pesi(:,2));
count = accumarray(G, 1);
num_instances = table(value, count);
See also grpstats
2 commentaires
Walter Roberson
le 6 Juil 2022
If the 151 corresponds to the number of different values that can appear in column 1, then
[G2, value2] = findgroups(all_indices_pesi(:,2));
[G1, value1] = findgroups(all_indices_pesi(:,1));
count = accumarray([G2, G1], 1);
row #J corresponds to column 2 value value2(J)
column #K corresponds to column 1 value value1(K)
So count(J,K) is the count for column 2 value value2(J) in combination with column 1 value value1(K)
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Get Started with MATLAB 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!