MATLAB: Retime only for specific gaps on time

retime

I have a timetable z with more than 10 000 rows, this timetable should have a resolution of 15 minutes, but there are gaps of for example 30,45 minutes, 1, 5, 8 hours, or even days. So I would like to fill the missing data using retime but only for the gaps lower or equal to a specific gap (for example 1 hour). How can I do that? I have search for ways of doing that, but have found no hint. I am using this line, but it fills all the gaps.
retime(z,'regular','linear','TimeStep',minutes(15))
Any help would be very much appreciatted.

Best Answer

How about the following solution?
% Sample timetable with 2 gaps (e.g >1 hour)
Time = datetime('now') + minutes(cumsum(45*rand(100,1)));
Time(30:end) = Time(30:end) + hours(1); % Gap1
Time(60:end) = Time(60:end) + hours(1); % Gap2
Data = rand(100,1);
TT = timetable(Time,Data);
% Find gaps and create group vector
idx = diff(TT.Time) > hours(1);
idx = [true; idx];
group = cumsum(idx);
% Apply retime function for each group and concatenate the result
TT2 = [];
for kk = 1:max(group)
idx = group == kk;
TT2 = [TT2; retime(TT(idx,:),'regular','linear','TimeStep',minutes(15))];
end