How can I strip duplicates?
Ältere Kommentare anzeigen

I wish to remove all duplicate rows based off of the first column. That is, I want to just strip the excess away. I am struggling to understand how to implement "unique" here. Thanks in advance
5 Kommentare
dpb
am 8 Apr. 2021
Looks like you probably just want the 'rows' optional parameter...
res=unique(data,'rows'); % keep original, too, or
data=unique(data,'rows'); % throw the original duplicates away
Cris LaPierre
am 8 Apr. 2021
Perhaps something got lost as you transferred your answer here, but it looks like both lines of code will produce the same output.
dpb
am 8 Apr. 2021
Yes, but as the comments note the second overwrites the data array whereas the first creates a new result variable, keeping the original data as well in case there is some other reason to have it, too, going forward.
Cris LaPierre
am 9 Apr. 2021
Ah, got it. Thanks.
per isakson
am 13 Okt. 2021
Bearbeitet: per isakson
am 13 Okt. 2021
Antworten (1)
Fangjun Jiang
am 9 Apr. 2021
If you want
- remove duplicates only based on values in the first column
- Do not want the returned values be sorted
then you need to do this
in=[[5;5;5;4;4;4;3;3;3;1],(1:10)'];
[~, index]=unique(in(:,1),'stable');
out=in(index,:)
Kategorien
Mehr zu Shifting and Sorting Matrices finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!