how to delete rows with some repeated elements?

1 回表示 (過去 30 日間)
Iris Li
Iris Li 2018 年 5 月 30 日
コメント済み: Iris Li 2018 年 5 月 31 日
for example I need to delete one out of two rows whose numbers in column 1&2 are the same. At the same time the deleted row should have a smaller number in column 3. I know the unique command but don't know how to use in this situation. Thanks in advance. I have a=[1,2,3; 1,2,4; 5,6,7; 5,6,8];I want to get b=[1,2,4;5,6,8]

採用された回答

Stephen23
Stephen23 2018 年 5 月 30 日
編集済み: Stephen23 2018 年 5 月 30 日
One way using sortrows and unique:
>> a = [1,2,3;1,2,4;5,6,7;5,6,8];
>> b = sortrows(a,3);
>> [~,idx] = unique(b(:,1:2),'rows','last');
>> b = b(idx,:)
b =
1 2 4
5 6 8
The sortrows call sorts rows by the third column (i.e. smaller values come before larger), then we select the unique rows (only columns 1 & 2), taking the last one each time (which because the rows are sorted will be the larger value in the third column).
  1 件のコメント
Iris Li
Iris Li 2018 年 5 月 31 日
Thanks again.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by