How to accept time from the user into a matrix?

2 次查看(过去 30 天)
I want to accept (say)3 time elements for example 8:30, 8:20 & 8:00 from user and store it in an array using 'datenum'. How can i achieve that? Please help.
  1 个评论
Febin Benjamin
Febin Benjamin 2014-6-28
I have worked out my version here if anyone needs it in future.
dateNumArray = []; %// Store datenums here
%// Enter a blank line to quit this loop
while true
timestr = input('Enter a time: ', 's');
if (isempty(timestr))
break;
end
%// Split the string up at the ':'
splitStr = strsplit(timestr, ':');
%// Read in the current date as a vector
%// Format of: [Year, Month, Day, Hour, Minute, Second]
timeRead = clock;
%// Replace hours and minutes with user prompt
%// Zero the seconds
timeRead(4:6) = [str2num(splitStr{1}) str2num(splitStr{2}) 0];
%// Convert to datenum format
dateNumArray = [dateNumArray datenum(timeRead)];
end

请先登录,再进行评论。

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2014-6-28
d=input('choose 3 time in this form 8:00 8:30 9:00 ','s')
e=datenum(regexp(d,'\S+','match'))
  2 个评论
Febin Benjamin
Febin Benjamin 2014-6-28
Azzi does your code mean that user can input only 3 specified time elements i.e 8:00 8:30 9:00? No right? User should be able to enter any time (e.g. 4:45 5:56 8:00).
Azzi Abdelmalek
Azzi Abdelmalek 2014-6-28
No , he can enter any number of time he wants, just choose your message

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Dates and Time 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by