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

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Katerina F
on 22 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 =

731582.00

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

*No products are associated with this question.*

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); fclose(f);

out = datenum(strcat(c{1}(:,1),{'_'},c{1}(:,2)),'dd/mm/yyyy_HH:MM');

or

f = fopen('dates1.txt'); c = textscan(f,'%s','delimiter','\n'); fclose(f);

out = datenum(c{1},'dd/mm/yyyy HH:MM')

Show 1 older comment

Katerina F
on 27 Aug 2014

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

Andrei Bobrov
on 27 Aug 2014

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 *

7.3158 7.3195

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

Show 2 older comments

Katerina F
on 25 Aug 2014

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

## 0 Comments