how to remove unique values.

3 Ansichten (letzte 30 Tage)
danny
danny am 3 Okt. 2013
Kommentiert: Cedric am 3 Okt. 2013
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

Akzeptierte Antwort

Cedric
Cedric am 3 Okt. 2013
Bearbeitet: Cedric am 3 Okt. 2013
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 Kommentare
danny
danny am 3 Okt. 2013
This is a fantastic solution! Many thanks for your help!
Cedric
Cedric am 3 Okt. 2013
You're welcome!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by