使用'datenum'创建间隔

时间:2014-02-23 11:30:43

标签: matlab

我正在创建等间隔时间序列的限制,我需要能够更改时间间隔(1分钟,5分钟,10分钟,15分钟,30分钟,60分钟等)。我的界限是市场的开盘和收盘时间。我工作的股票从第二天的17.00到16.15进行交易。 这是我正在使用的:

timevec=datenum(2013,1,1,17,0:1*interval:1395,0)';
% It creates a time vector from 1-1-2013 17.00.00 to 1-2-2013 16.15.00 
% spaced by "1min*interval"

使用的公式非常简单,但如果我需要使用10分钟或30分钟,则会出现问题:结果如下:
(10分钟)

02-Jan-2013 15:50:00
02-Jan-2013 16:00:00
02-Jan-2013 16:10:00

(30分钟)

02-Jan-2013 15:30:00
02-Jan-2013 16:00:00

我想要的是10分钟的额外间隔16:20:00和30分钟的16:30:00。我能想到的唯一解决方案是将绑定移动到16:30并添加if语句以在不需要时删除额外的观察,或者在16:15:00保持绑定并添加if语句以添加在需要时进行额外观察。
反正有没有能够处理这两种情况的单线?

1 个答案:

答案 0 :(得分:2)

Matlab创建范围,使所有值都在限制范围内。如果要在限制之外添加一个附加值,可以通过在结尾添加几乎一个间隔长度来修改上限:

step = 15;
1:step:100+0.99*step

ans =
     1    16    31    46    61    76    91   106