MATLAB:将一个时间表集成到另一个时间表中

时间:2018-05-04 10:57:45

标签: matlab array-merge timetable

我想扩大现有的时间表。原始时间表仅包括交易日,而我想扩展它以反映所有工作日(无论是否工作日)。

考虑原始时间表tt。我想使用RowTimes向量datesWeekdays展开它。展开的行应包含NaN。

在玩游戏时,我想知道是否有必要首先创建一个包含所有日期的新时间表,并将数据设置为NaN,然后​​将原始时间表tt“整合”到新时间表中{{1} }。

这是一个玩具示例:

ttWeekdays

1 个答案:

答案 0 :(得分:1)

您可以使用retime。像这样:

% Set up a date vector
newDates = datetime('2018-04-30'):datetime('2018-05-10');
newDates(isweekend(newDates)) = [];

% Use RETIME in default mode to expand input table
retime(tt, newDates)

得到

  9×2 timetable
       Time         high        low  
    ___________    _______    _______
    30-Apr-2018    0.81472    0.91338
    01-May-2018        NaN        NaN
    02-May-2018    0.90579    0.63236
    03-May-2018    0.12699    0.09754
    04-May-2018        NaN        NaN
    07-May-2018        NaN        NaN
    08-May-2018        NaN        NaN
    09-May-2018        NaN        NaN
    10-May-2018        NaN        NaN

请注意,retime支持各种填写缺失数据的方法 - 此处我们使用的是默认值'fillwithmissing'