Finding unique dates in vector

13 visualizzazioni (ultimi 30 giorni)
Mads
Mads il 25 Mag 2011
Modificato: Daniel Svedbrand il 12 Mar 2025
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 Commento
Jan
Jan il 25 Mag 2011
What exactly means "vector of dates"? Please post the type of the input exactly. I assume that UNIQUE will help you directly.

Accedi per commentare.

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 25 Mag 2011
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 Commenti
Andrei Bobrov
Andrei Bobrov il 25 Mag 2011
Hi Jan! agree with you.
Matt Tearle
Matt Tearle il 25 Mag 2011
...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.)

Accedi per commentare.

Più risposte (1)

Daniel Svedbrand
Daniel Svedbrand il 12 Mar 2025
Modificato: Daniel Svedbrand il 12 Mar 2025
unique_dates = unique(dateshift(Date,'start','day'));
if Date are datetimes, otherwise
unique_dates = unique(dateshift(datetime(Date),'start','day'));

Categorie

Scopri di più su Time Series Objects in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by