How can I strip duplicates?
古いコメントを表示

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 件のコメント
dpb
2021 年 4 月 8 日
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
2021 年 4 月 8 日
Perhaps something got lost as you transferred your answer here, but it looks like both lines of code will produce the same output.
dpb
2021 年 4 月 8 日
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
2021 年 4 月 9 日
Ah, got it. Thanks.
per isakson
2021 年 10 月 13 日
編集済み: per isakson
2021 年 10 月 13 日
回答 (1 件)
Fangjun Jiang
2021 年 4 月 9 日
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,:)
カテゴリ
ヘルプ センター および File Exchange で Shifting and Sorting Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!