Effacer les filtres
Effacer les filtres

how to delete rows with some repeated elements?

1 vue (au cours des 30 derniers jours)
Iris Li
Iris Li le 30 Mai 2018
Commenté : Iris Li le 31 Mai 2018
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]

Réponse acceptée

Stephen23
Stephen23 le 30 Mai 2018
Modifié(e) : Stephen23 le 30 Mai 2018
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).

Plus de réponses (0)

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by