可能重复:
在 MATLAB 中使用时间序列按天/小时计算值
这是一个基本问题,但我找不到:
我有一个 3000x25 字符数组:
2000-01-01T00:01:01+00:00
2000-01-01T00:01:02+00:00
2000-01-01T00:01:03+00:00
2000-01-01T00:01:04+00:00
这些显然是时代。我想将数组重新格式化为 3000x1 数组。如何将每一行重新定义为数组中的一个条目?
(再次,这很简单,对不起)
可能重复:
在 MATLAB 中使用时间序列按天/小时计算值
这是一个基本问题,但我找不到:
我有一个 3000x25 字符数组:
2000-01-01T00:01:01+00:00
2000-01-01T00:01:02+00:00
2000-01-01T00:01:03+00:00
2000-01-01T00:01:04+00:00
这些显然是时代。我想将数组重新格式化为 3000x1 数组。如何将每一行重新定义为数组中的一个条目?
(再次,这很简单,对不起)
除了转换为其他显示的序列号之外,我认为您只是想转换为字符串的单元格数组:
A = cellstr(c)
其中c
是 3000x25 的字符矩阵。
您需要为数组指定格式并将其提供给datenum
,如下所示:
>> d = datenum(c,'YYYY-MM-DDTHH:mm:ss')
d =
1.0e+005 *
7.3487
7.3487
7.3487
7.3487
时间现在存储为 datenums,即作为浮点数表示自 Matlab 纪元开始以来经过的天数。如果你想将这些转换为代表一天中过去的分数的数字,你可以这样做
>> t = d - fix(d);
如果你想要自午夜以来的秒数,你可以这样做
>> t = 86400 * (d - fix(d));
t =
61.0000
62.0000
63.0000
64.0000