0

我有一些要在一组文件中解析的数据。这些文件包含许多数据点的年、月、日、小时、分钟和秒界限。

这是流的示例:

> 2010/01/01,00:00:00.979131, 27.4485,  51.9362, 14.8,  6
> 2010/01/01,00:00:01.021977, 27.5149,  51.9375, 16.0,  6
> 2010/01/01,00:00:01.074032, 27.4797,  51.9446, 14.5, 10
> 2010/01/01,00:00:01.663689, 25.8441,-152.8141, 14.6,  6

到目前为止,我可以这样做以获得秒数:

raw = textscan(fid, '%d/%d/%d %d:%d:%f %f %f %f %d', 'delimiter', ',');
m = cellfun(@double, raw, 'UniformOutput', false); %convert to doubles
seconds = ((m{:,4} *  3600.0) + (m{:,5} * 60.0) + m{:,6});

放弃年份,我如何使用我所拥有的,加上一些涉及月份和日期的特殊魔法来创建一个单调递增的数字,将一年中的天数表示为浮点数?

4

1 回答 1

2

使用datenum,例如:

 datenum(Y, M, D, H, MN, S)

返回 Y、M、D、H、MN 和 S(年、月、日、小时、分钟和秒)数组值的对应元素的日期序列号。datenum 在单独的输入中不接受毫秒,而是作为秒 (DateString) 输入的小数部分。输入 Y、M、D、H、MN 和 S 必须是大小相同的双精度数组(或任何可以是标量)。您还可以将输入参数指定为日期向量 [YMDH MN S]。

于 2013-02-04T00:58:55.710 回答