how to delete rows with some repeated elements?
1 view (last 30 days)
Show older comments
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]
0 Comments
Accepted Answer
Stephen23
on 30 May 2018
Edited: Stephen23
on 30 May 2018
>> 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).
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!