How do I delete repetitions of rows in a matrix?

16 vues (au cours des 30 derniers jours)
Natalie
Natalie le 7 Mai 2015
Commenté : Guillaume le 7 Mai 2015
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?

Réponse acceptée

Ahmet Cecen
Ahmet Cecen le 7 Mai 2015
C = unique(A,'rows')

Plus de réponses (1)

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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by