Generate a Definite timestamp sequence

31 views (last 30 days)
Stefan Azzopardi
Stefan Azzopardi on 11 Jun 2018
Edited: Stefan Azzopardi on 12 Jun 2018
How can I generate a column with a timestamp showing day-month-year hh:mm:ss for every 5 mins of a month? For example I need to create a column for every 5mins of March, therefore the table should show like this:
01/03/2018 00:00:00
01/03/2018 00:05:00
01/03/2018 00:10:00 until
31/03/2018 23:55:00

Answers (1)

per isakson
per isakson on 12 Jun 2018
Edited: per isakson on 12 Jun 2018
The old way
>> vec = repmat([2018,3,1,0,0,0], 31*24*12, 1 );
>> minutes = ( 0 : 5 : 5*(31*24*12-1) )';
>> vec(:,5) = minutes;
>> sdn = datenum( vec );
>> str = datestr( sdn, 'dd/mm/yyyy HH:MM:SS' );
>> str(1:4,:)
ans =
4×19 char array
'01/03/2018 00:00:00'
'01/03/2018 00:05:00'
'01/03/2018 00:10:00'
'01/03/2018 00:15:00'
>> str(end,:)
ans =
'31/03/2018 23:55:00'
However, I guess this is not exactly what you want.
The new way (Introduced in R2014b)
>> t = datetime( vec );
>> t(1)
ans =
datetime
01-Mar-2018 00:00:00
>> t(end)
ans =
datetime
31-Mar-2018 23:55:00
  1 Comment
Stefan Azzopardi
Stefan Azzopardi on 12 Jun 2018
Edited: Stefan Azzopardi on 12 Jun 2018
Hi isakson, thanks for your help, In the meantime I still continued to try out some other solutions and managed to create what I was expected using the below code:
t1 = datetime (2018,03,01,0,0,0)
t2 = datetime (2018,03,31,23,55,00)
Timestamp = t1:minutes(5):t2
Timestamp = Timestamp.'
Now I am trying to integate three tables using outerjoin. Do you know if it is possible to join 3 or more tables using outerjoin? I managed to integrate the new variable 'timestamp' with another table of 2 columns ('Timestamp', 'Variable1') and now I intend to add another 2 columns ('Timestamp', 'Variable2')
Best Regards

Sign in to comment.

Categories

Find more on Dates and Time in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!