1

可能重复:
在 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 数组。如何将每一行重新定义为数组中的一个条目?

(再次,这很简单,对不起)

4

2 回答 2

3

除了转换为其他显示的序列号之外,我认为您只是想转换为字符串的单元格数组:

A = cellstr(c)

其中c是 3000x25 的字符矩阵。

于 2012-07-26T16:22:07.577 回答
1

您需要为数组指定格式并将其提供给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
于 2012-07-26T16:16:07.183 回答