How to identify duplicate rows in a matrix?

2 ビュー (過去 30 日間)
Leon
Leon 2020 年 3 月 16 日
編集済み: Leon 2020 年 3 月 16 日
I have a matrix like the below. It could have millions of rows.
A = [Year, Month, Day, Time, Lon, Lat, A, B, C;
2005, 3, 7, 11:30am, -120, 39.5, 20, 31, 5;
...
... ];
What I want to do is to identify rows with duplicates defined as:
Time = datenum(Year, Month, Day) + Time/24;
Time1 - Time2 < (1/24/60)*30 % less than 30 mins
Lon1 - Lon2 < 0.5
Lat2 - Lat2 < 0.5
For each identified duplicate pair (e.g., Row 15 and Row 6000 are duplicates), I would hope to have two rows in a new matrix:
Year1, Month1, Day1, ... (Row #15)
Year2, Month2, Day2, ... (Row #6000)
Many thanks for any tips!

採用された回答

Image Analyst
Image Analyst 2020 年 3 月 16 日
Try the unique() function. After finding unique rows, then you might want to use the setdiff() function. If you still have trouble, attach a short version of your A with some duplicate rows so people can do it for you.
  1 件のコメント
Leon
Leon 2020 年 3 月 16 日
編集済み: Leon 2020 年 3 月 16 日
Many thanks!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeResidual Analysis についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by