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

0 Stimmen

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)

Gefragt:

am 3 Okt. 2013

Kommentiert:

am 3 Okt. 2013

Community Treasure Hunt

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

Start Hunting!

Translated by