how to remove unique values.

3 views (last 30 days)
danny
danny on 3 Oct 2013
Commented: Cedric on 3 Oct 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

Accepted Answer

Cedric
Cedric on 3 Oct 2013
Edited: Cedric on 3 Oct 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 Comments
danny
danny on 3 Oct 2013
This is a fantastic solution! Many thanks for your help!
Cedric
Cedric on 3 Oct 2013
You're welcome!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!