MATLAB: How to generate random time format data in MATLAB

generaterandomtime

Hi all, I am wondering how to generate random time format data (or series) in MATLAB between a range of time ? such as 12:00:23 , ……?
Thanks

Best Answer

Here's one way:
% Generate a random time (down to granularity of seconds)
% Parameters
NUMBER_RANDOM_TIMES = 100;
SECONDS_PER_DAY = 24*60*60;
START_DATE = '2013-01-01';
END_DATE = '2013-06-30';
% Algorithm
startDateNum = datenum(START_DATE,'yyyy-mm-dd');
endDateNum = datenum(END_DATE, 'yyyy-mm-dd');
dayRange = endDateNum - startDateNum;
secondsRange = SECONDS_PER_DAY*dayRange;
randomNumberOfSeconds = randi(secondsRange,NUMBER_RANDOM_TIMES,1);
randomDatenums = startDateNum + randomNumberOfSeconds/SECONDS_PER_DAY;
randomDates = datestr(randomDatenums);