detect same value

3 visualizaciones (últimos 30 días)
pink
pink el 10 de Jun. de 2011
how do I detect on the elements of a (:, 1) there is the same value?
a=[1 34;
2 33;
2 45;
3 32;
4 65;
4 99;
5 11;
1 33;
6 22]

Respuesta aceptada

Walter Roberson
Walter Roberson el 10 de Jun. de 2011
u = unique(a(:,1));
if length(u) ~= size(a,1)
%there were duplicates
end
If you want to find out which are equal to which,
bsxfun(@eq, a(:,1), a(:,1).'))
and that will return a logical matrix in which for row r, column c is set if a(r) == a(c)
  2 comentarios
M M
M M el 6 de Mzo. de 2013
How would you isolate the duplicated values? So I would know which values are duplicated and use them for another purpose? (The opposite of the unique function)
Walter Roberson
Walter Roberson el 6 de Mzo. de 2013
setdiff(V, unique(V)) %for vector V, results are in sorted order
or
T = bsxfun(@eq, V(:), V(:).'); %for vector V
sum(T) > 1 %will be true at index K if V(K) is not unique

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical 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