在Matlab中生成时间戳系列?

时间:2016-07-27 06:42:33

标签: matlab datetime timestamp time-series matlab-figure

所有   我想知道是否有办法在Matlab中生成时间戳系列?

我假设会有开始时间,结束时间和频率。

使用1:1:100(1到100乘1)

生成正常序列很简单

我如何使用类似的方式生成时间戳系列?

例如,我指定开始时间为上午9点,直到上午10点,我想生成类似9:00:00:000,9:00:00:500,9:00:01:000的内容,...

加了500毫秒

甚至更好,也包括日期。

3 个答案:

答案 0 :(得分:1)

使用datenum,你可能遇到的唯一问题是,如果你跨越很长一段时间,你会在第二天/每天或夏季节省时间之间发生冲突(但我不认为这是在datestr as you can read here)中实施的。

使用datenumnowdatestr

进行游戏
starttime = datenum(2000, 1, 1, 9, 0, 0);
dt = 0.500/86400; % datenum is a serial time format with 1 = 1 day = 86400 sec
N = 5;
timevec = starttime + dt*(0:(N-1));

>> datestr(timevec, 'HH:MM:SS.FFF')

ans =

09:00:00.000
09:00:00.500
09:00:01.000
09:00:01.500
09:00:02.000

答案 1 :(得分:1)

从2015a开始,您可以使用milliseconds函数构建时间点之间的时间步长向量:

start = datetime('2017/1/3 9:00:00:000','InputFormat','yyyy/MM/dd H:mm:ss:SSS');
step = milliseconds(500);
fin = datetime('2017/1/3 10:00:00:000','InputFormat','yyyy/MM/dd H:mm:ss:SSS');
time_vec = start:step:fin;

如果您没有明确定义日期,则会选择当前日期。

您还可以为时间和数据设置一个结构,您可以使用timeseries类(使用上面的start):

data = rand(7201,1);
ts = timeseries(data,'Name','MyTs');
ts.TimeInfo.StartDate = start;
ts.TimeInfo.Units = 'milliseconds';
ts = setuniformtime(ts,'Interval',500);

这将创建一个时间序列对象:

>> ts
  timeseries

  Common Properties:
            Name: 'MyTs'
            Time: [7201x1 double]
        TimeInfo: [1x1 tsdata.timemetadata]
            Data: [7201x1 double]
        DataInfo: [1x1 tsdata.datametadata]

有以下时间信息:

>> ts.TimeInfo
  tsdata.timemetadata
  Package: tsdata

  Uniform Time:
    Length       7201
    Increment    500 milliseconds

  Time Range:
    Start        03-Jan-2017 09:00:00
    End          03-Jan-2017 10:00:00

  Common Properties:
          Units: 'milliseconds'
         Format: ''
      StartDate: '03-Jan-2017 09:00:00'

答案 2 :(得分:0)

这取决于您的需求,但您可以考虑使用datetime()days()hours()minutes()seconds()中的一个或多个的组合等功能。

让我们写一些代码:

start=datetime(1985,07,13,9,0,0);  % your start date
steps=seconds(0:0.5:100);          % your vector with steps
timeseries=start+steps;            % your time series

您还可以设置显示符合您需求的数据的格式,请执行此操作检查datetime properties手册。