Find repeated values in a matrix
    7 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
How can I find repeated values at the same time in two columns of an array (12x2):
A = [26	24
    28	35
    31	34
    33	31
    33	31
    33	28
    35	25
    31	26
    30	26
    28	29
    27	30
    26	32];
In A the [33 31] is repeated. I tried to use the unique function but it only finds the unique values in a column.
[C, ia, ic] = unique(A(:,1), 'rows');
Thanks in advance.
0 commentaires
Réponses (1)
  Walter Roberson
      
      
 le 9 Déc 2020
        A = [26	24
    28	35
    31	34
    33	31
    33	31
    33	28
    35	25
    31	26
    30	26
    28	29
    27	30
    26	32];
[C, ~, G] = unique(A, 'rows');
counts = accumarray(G, 1);
mask = counts > 1;
[counts(mask), C(mask,:)]
2 commentaires
  Walter Roberson
      
      
 le 9 Déc 2020
				[wasfound, idx] = ismember(ThingToFind, A, 'rows');
repcounts = zeros(size(wasfound));
repcounts(wasfound) = counts(idx(wasfound));
[repcounts, ThingToFind]
Here, ThingToFind may be a 2D array with the same number of columns as A has, and the associated count will be calculated for each entry.
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

