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

1 回表示 (過去 30 日間)
Katerina F
Katerina F 2014 年 8 月 22 日
コメント済み: Katerina F 2014 年 8 月 27 日
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))';
Katerina F
Katerina F 2014 年 8 月 27 日
thanks Andrei

サインインしてコメントする。

その他の回答 (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 Center および File ExchangeDates and Time についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by