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

4 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

Matt J
Matt J am 24 Jan. 2021
Bearbeitet: Matt J am 24 Jan. 2021
idx = diff([inf;findgroups(A.site)])~=0;
A = A(idx,:)
  2 Kommentare
Adam Danz
Adam Danz am 24 Jan. 2021
Bearbeitet: Adam Danz am 24 Jan. 2021
Was about to suggest something very similar,
G=findgroups(A.site);
rmIdx = [1;diff(G)]==0;
A(rmIdx,:) = [];

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by