How do I delete repetitions of rows in a matrix?
16 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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?
0 commentaires
Réponse acceptée
Plus de réponses (1)
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
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.
Voir également
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!