Remove successive rows from a table where a specific column value is duplicated

3 vues (au cours des 30 derniers jours)
Hi all ,
I HAVE this table A :
time lon lat site
12:45 23.23234 45.2324 ZRY122
13:45 12.21342 34.456 ZRY101
11:2345 1234.24 12.5555 ZRY122
22:34 23.4343 2.34566 ZRY122
22:14 23.4303 2.34596 ZRY555
i want to remove consecutive(successive) rows where site column is same, for example , i want to get this :
time lon lat site
12:45 23.23234 45.2324 ZRY122
13:45 12.21342 34.456 ZRY101
11:2345 1234.24 12.5555 ZRY122
22:14 23.4303 2.34596 ZRY555
UNIQUE here will not work because it will keep only one instance of the column site !!
Thanks

Réponse acceptée

Matt J
Matt J le 24 Jan 2021
Modifié(e) : Matt J le 24 Jan 2021
idx = diff([inf;findgroups(A.site)])~=0;
A = A(idx,:)
  2 commentaires
Adam Danz
Adam Danz le 24 Jan 2021
Modifié(e) : Adam Danz le 24 Jan 2021
Was about to suggest something very similar,
G=findgroups(A.site);
rmIdx = [1;diff(G)]==0;
A(rmIdx,:) = [];
Tareq Rahmani
Tareq Rahmani le 25 Jan 2021
Thanks very much Adam and Matt.
Excellent

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 2-D and 3-D Plots 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