Find repeated values in a matrix

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.

Réponses (1)

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,:)]
ans = 1×3
2 33 31

2 commentaires

Yro
Yro le 9 Déc 2020
Thanks a lot, it works. One more question, if I want to know if some value is repeated or not?
[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.

Connectez-vous pour commenter.

Catégories

En savoir plus sur App Building dans Centre d'aide et File Exchange

Question posée :

Yro
le 9 Déc 2020

Commenté :

le 9 Déc 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by