how to remove unique values.

Hi,
I have a vector with some repeating values, and some unique.
e.g. A = [ 1 1 2 4 4 3 4 1 5 3]
How do i remove the unique values and get this:
ans = [1 3 4]
i.e. if there are duplicates of a value, keep one copy of that value. uniques are not wanted.
i can easily use unique to remove the duplicates but i also want to remove the values that appeared once.
Thanks,
Danny

 Respuesta aceptada

Cedric
Cedric el 3 de Oct. de 2013
Editada: Cedric el 3 de Oct. de 2013

0 votos

Assuming that elements of A are integers greater or equal to 1, you could do something like:
>> nonUniqueValues = find( accumarray(A.', ones(size(A))) > 1 )
nonUniqueValues =
1
3
4
EDIT: we could also imagine an approach based on diff(sort(A))==0, but I prefer the approach above.

2 comentarios

danny
danny el 3 de Oct. de 2013
This is a fantastic solution! Many thanks for your help!
Cedric
Cedric el 3 de Oct. de 2013
You're welcome!

Iniciar sesión para comentar.

Más respuestas (0)

Preguntada:

el 3 de Oct. de 2013

Comentada:

el 3 de Oct. de 2013

Community Treasure Hunt

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

Start Hunting!

Translated by