[初学笔记] matlab中的倒计时程序(改良版,可随意input秒数)


作为function的初学者表示,主程序和子函数要分别保存在两个m文件,并且在同一根目录下~~


%%% 主程序和子函数都出自于blog http://blog.sina.com.cn/s/blog_53f291190100b5ld.html
%%% 由于上面的程序有两个问题,第一无法自定义倒数的时间,只能输入整个clock,非常不利于实验;第二,一直显示剩余时间有多少。。。
%%% 改良版,加了一段程序,只要input你想要倒数的秒数时间就可以了,并且只输出最后的结束时间


%主程序

nowt = num2cell(fix(clock));
addt = cell(1,6);
addt = {0,0,0,0,0,0 };
addt{1,6} = input('\n\n count down from____sec\n\n'); %% 通过input你想要倒数的秒数,即可以倒数
a = cell2mat(nowt);
b = cell2mat(addt);
count = a + b; %% 这里的count最后会用于下面的倒数,是double格式


global Endtime
Endtime=[count];
t = timer('StartDelay', 0,'Period',0.05,'TasksToExecute', 10000,...
          'ExecutionMode','fixedRate');
t.TimerFcn = {@mycallback}; %% 引入function 子函数
start(t)

%子函数
function mycallback(t,events,arg_str)
%mycallback.m
global Endtime
Lefttime=etime(Endtime,clock);
if Lefttime<0
   stop(t);
   disp('Times up!!')
   return
end
LeftMillionSeconds=round(rem(Lefttime,1)*1000);
LeftSeconds=floor(rem(Lefttime,60));
LeftMinutes=floor(rem(Lefttime/60,60));
% r=sprintf('剩余时间:%d分%d秒%d',LeftMinutes,LeftSeconds,LeftMillionSeconds);
% disp(r)

你可能感兴趣的:(Matlab学习)