创建包含时间matlab的向量

时间:2014-07-29 13:09:07

标签: matlab time

我有一个包含一天小时的单元格数组。

hours = {'00:00:00', '01:00:00', '02:00:00', '03:00:00', '04:00:00', '05:00:00', '06:00:00', '07:00:00', '08:00:00', '09:00:00', '10:00:00', '11:00:00', '12:00:00',...
    '13:00:00', '14:00:00', '15:00:00', '16:00:00', '17:00:00', '18:00:00', '19:00:00', '20:00:00', '21:00:00', '22:00:00', '23:00:00'};

我是手动创建的:( ...现在我想创建一个间隔15分钟的另一个...你有任何提示自动完成吗?

hours_15 = {'00:00:00', '00:15:00','00:30:00',...,'23:45:00'}

2 个答案:

答案 0 :(得分:4)

你可以通过使用datenum实现这一点:

dt = datenum('00:15:00','HH:MM:ss') - datenum('00:00:00','HH:MM:ss'); % or: dt = 1/(24*4)
time_begin = datenum('00:00:00','HH:MM:ss');
time_end = datenum('23:45:00','HH:MM:ss');
hours_15 = cellstr(datestr(time_begin:dt:time_end,'HH:MM:ss'));

最佳, NRAS。

答案 1 :(得分:0)

一个非常简单的不太优雅的解决方案:

hours = 0:23;
quarters = [0,15,30,45];
counter = 0;
% Pre-allocate space
C = cell(96,1)
for ii=1:24
    for jj=1:4
        counter=counter+1;
            C{counter} = sprintf('%02d:%02d:00',hours(ii),quarters(jj));
    end
end

应该注意的是,这需要四分之一的时间来解决Nras解决方案。