Find repeated values in a matrix

2 visualizaciones (últimos 30 días)
Yro
Yro el 9 de Dic. de 2020
Comentada: Walter Roberson el 9 de Dic. de 2020
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.

Respuestas (1)

Walter Roberson
Walter Roberson el 9 de Dic. de 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,:)]
ans = 1×3
2 33 31
  2 comentarios
Yro
Yro el 9 de Dic. de 2020
Thanks a lot, it works. One more question, if I want to know if some value is repeated or not?
Walter Roberson
Walter Roberson el 9 de Dic. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Numeric Types en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by