MATLAB Answers

Katerina F

convert day year hour data series with missing data to a serial number

Asked by Katerina F
on 22 Aug 2014
Latest activity Commented on by Katerina F
on 27 Aug 2014

I have a year of data from "01/01/2003 00:00" to "2003/12/31 23:59" with some days/hous missing from the data series. I think to convert these dates/times to serial numbers I have to use the datenum. To convert each one of these numbers I understand that I have to do: datenum(2003,1,1,0,0,0) which gives ans =


This is fine for one number but how I can convert the whole series? thanks, Katerina



No products are associated with this question.

2 Answers

Answer by Andrei Bobrov
on 26 Aug 2014
Edited by Andrei Bobrov
on 26 Aug 2014
 Accepted answer

f = fopen('dates1.txt');
c = textscan(f,'%s %s','collectoutput',1);
out = datenum(strcat(c{1}(:,1),{'_'},c{1}(:,2)),'dd/mm/yyyy_HH:MM');


f = fopen('dates1.txt');
c = textscan(f,'%s','delimiter','\n');
out = datenum(c{1},'dd/mm/yyyy HH:MM')


I would like to ask something additional to my previous question.

If now I have a file with a full year, as it is in the text file attached (one column months, one days, one hours), and I try to apply the above to convert to serial number, then the comment out = datenum(c{1},'dd/mm HH:MM') does not give a result (probably because the format is diffent)

What code I should apply in this case in order to convert the series to a serial number?

thanks, K

Let your year: year1 = 2014

dt = datenum([2014 1 1 0 0 0;2014 12 31 23 0 0]);
out = (dt(1):1/24:dt(2))';

Answer by Adam
on 22 Aug 2014

str{1} = '01/01/2003 00:00'
str{2} = '2003/12/31 23:59'
datenum( str )
ans =
     1.0e+05 *

So you should just be able to put all your strings into a cell array and pass that in to datenum


Is that all one string in a single variable?

It is one column of data. Each line in the column is for example: 31/01/2003 16:00

If it is a cell array you should just be able to pass it to datenum. If not then you will need to convert each row to a cell containing the string rather than a standard char matrix using e.g.

dateCells = cellstr( dates )

Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!