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

1 次查看(过去 30 天)
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

采纳的回答

Andrei Bobrov
Andrei Bobrov 2014-8-26
编辑:Andrei Bobrov 2014-8-26
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')
  4 个评论
Andrei Bobrov
Andrei Bobrov 2014-8-27
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))';

请先登录,再进行评论。

更多回答(1 个)

Adam
Adam 2014-8-22
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
  5 个评论
Katerina F
Katerina F 2014-8-25
It is one column of data. Each line in the column is for example: 31/01/2003 16:00
Adam
Adam 2014-8-26
编辑:Adam 2014-8-26
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 )

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Dates and Time 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by