Finding unique dates in vector

25 ビュー (過去 30 日間)
Mads
Mads 2011 年 5 月 25 日
編集済み: Daniel Svedbrand 2025 年 3 月 12 日 11:10
Hi all.
I have a vector of dates where each date is repeated many times. How would i create a vector with every date but no repetitions efficiently?
Thx.
  1 件のコメント
Jan
Jan 2011 年 5 月 25 日
What exactly means "vector of dates"? Please post the type of the input exactly. I assume that UNIQUE will help you directly.

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

採用された回答

Andrei Bobrov
Andrei Bobrov 2011 年 5 月 25 日
Date = ['02-Aug-2010 19:28:01'
'13-Nov-2010 09:10:20'
'10-Nov-2010 14:44:14'
'02-Aug-2010 19:28:01'
'08-Oct-2010 08:58:46'
'30-Jan-2010 08:24:16'
'10-Nov-2010 14:44:14'
'13-Nov-2010 09:10:20'
'08-Oct-2010 08:58:46']
[a n] = unique(datenum(Date));
D1 = sortrows([a n],2);
Dout = datestr(D1(:,1));
Hi Jan! agree with you. In our case, it is possible and so:
[a n] = unique(Date,'rows')
[~,idx] = sort(n);
Dout = a(idx,:);
  4 件のコメント
Andrei Bobrov
Andrei Bobrov 2011 年 5 月 25 日
Hi Jan! agree with you.
Matt Tearle
Matt Tearle 2011 年 5 月 25 日
...assuming that the dates are all in the exact same format. Andrei's solution (going via datenum) avoids the problem of two different formats for the same date. (Unlikely, but it could happen.)

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

その他の回答 (1 件)

Daniel Svedbrand
Daniel Svedbrand 2025 年 3 月 12 日 11:04
編集済み: Daniel Svedbrand 2025 年 3 月 12 日 11:10
unique_dates = unique(dateshift(Date,'start','day'));
if Date are datetimes, otherwise
unique_dates = unique(dateshift(datetime(Date),'start','day'));

カテゴリ

Help Center および File ExchangeDates and Time についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by