how to generate random time format data in MATLAB?

17 views (last 30 days)
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

Accepted Answer

the cyclist
the cyclist on 5 Jul 2013
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);
  2 Comments
saharsahar
saharsahar on 5 Jul 2013
Well, Thanks for your response,actually I am looking for generate random times between , lets say, 20:00:00 on 4/5/2013 and 05:00:00 on 5/5/2013. Actually I am not sure how I can address your algorithm in this issue?
Thanks for any help...
the cyclist
the cyclist on 5 Jul 2013
Change these lines:
START_DATE = '2013-04-05 20:00:00';
END_DATE = '2013-05-05 05:00:00';
startDateNum = datenum(START_DATE,'yyyy-mm-dd HH:MM:SS');
endDateNum = datenum(END_DATE, 'yyyy-mm-dd HH:MM:SS');

Sign in to comment.

More Answers (0)

Categories

Find more on Random Number Generation in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!