How do I delete repetitions of rows in a matrix?

1 view (last 30 days)
Suppose I have the following matrix (the one I'm working on has 1000x1000 cells, so I'll simplify things):
a=[1,2,3; 8,7,8; 1,2,3; 5,6,0; 2,5,7; 2,5,7];
I want to get rid of rows that repeat themselves, so that I have one row left from each repetition set. The desired matrix in this case would be:
a=[1,2,3; 8,7,8; 5,6,0; 2,5,7];
How do I do this?

Accepted Answer

Ahmet Cecen
Ahmet Cecen on 7 May 2015
C = unique(A,'rows')

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 7 May 2015
out = unique(A,'rows','stable');
old version of MATLAB:
[~,b] = unique(A,'rows','first');
out = A(sort(b),:);
  2 Comments
Natalie
Natalie on 7 May 2015
Thanks!
I tried C=unique(A, 'rows'), as suggested. What does the 'stable' add?
Guillaume
Guillaume on 7 May 2015
'stable' keeps the rows in the order they first appear. If not specified, then unique return the rows in a sorted order.

Sign in to comment.

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!