How do I delete repetitions of rows in a matrix?

16 Ansichten (letzte 30 Tage)
Natalie
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?

Akzeptierte Antwort

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

Weitere Antworten (1)

Andrei Bobrov
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
Natalie
Natalie am 7 Mai 2015
Thanks!
I tried C=unique(A, 'rows'), as suggested. What does the 'stable' add?
Guillaume
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.

Melden Sie sich an, um zu kommentieren.

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!

Translated by