how to delete rows with some repeated elements?

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 日

0 投票

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).

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeShifting and Sorting Matrices についてさらに検索

タグ

質問済み:

2018 年 5 月 30 日

コメント済み:

2018 年 5 月 31 日

Community Treasure Hunt

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

Start Hunting!

Translated by