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
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
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
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
Cris LaPierre 2021 年 4 月 9 日
Ah, got it. Thanks.
per isakson
per isakson 2021 年 10 月 13 日
編集済み: per isakson 2021 年 10 月 13 日
The values in the first column are not whole numbers. Thus uniquetol is appropriate.

サインインしてコメントする。

回答 (1 件)

Fangjun Jiang
Fangjun Jiang 2021 年 4 月 9 日

0 投票

If you want
  1. remove duplicates only based on values in the first column
  2. 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 ExchangeShifting and Sorting Matrices についてさらに検索

製品

リリース

R2020b

質問済み:

2021 年 4 月 8 日

編集済み:

2021 年 10 月 13 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by