How do I delete repetitions of rows in a matrix?
16 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Natalie
am 7 Mai 2015
Kommentiert: Guillaume
am 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?
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (1)
Andrei Bobrov
am 7 Mai 2015
out = unique(A,'rows','stable');
old version of MATLAB:
[~,b] = unique(A,'rows','first');
out = A(sort(b),:);
2 Kommentare
Guillaume
am 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.
Siehe auch
Kategorien
Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!