http://blog.sina.com.cn/s/blog_9183ba080101olx3.html
鉴于Matlab 中缺乏多线程机制,使用Timer 无疑是一个很重要的工具,Matlab 中Timer 是一个Java 对象。
(1) Timer 的定义
t=timer();
设置属性:
eg. set(t,‘Name’,‘your_timer_name’);
当然可以一次性设置完成:
例如:
TaskTimer=timer(…
‘Name’,‘FebirdTimer’,…
‘TimerFcn’,@ExecuteTask,…
‘ErrorFcn’,@ExecuteError,…
‘Period’,1,…
‘ExecutionMode’,‘fixedrate’);
这里TimerFcn 为Timer 执行的函数,后面的‘@ExcuteTask’ 就是你定义的函数名
同样ErrorFcn 也是一样。
Period 为执行周期,ExecutionMode 为执行模式,fixedrate 为固定频率。当然前面所说的都是在这个前提之上。
(2) 关于TimerFcn 的定义
当以TimerFcn 的定义默认必须有两个参数
function ExcuteTask(obj,eventdata)
% TODO
end
其中obj 为执行该函数所对应的timer 对象,eventdata 为事件数据,一般里面为具体时间。
当需要在ExcuteTask 中传入参数的时候,那么Timer 可以这样定义:
那么这时函数定义应该为:
function ExcuteTask(obj,eventdata,var1)
% TODO<