matlab中的timer模块,[转载]Matlab中Timer的使用
Matlab中Timer的使用
鉴于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
end
其他函数的定义也类似。
(3)关于UserData
UserData 在Timer比较有用,因为当时用上面的方法传递参数是,Matlab只会在第一次传入参数。
所以我们可以在UserData这个域中保存我们的数据。
例如:
t=[0];
lh=plot(t,sin(t),'-');
t=timer(...
'Name','MyTimer',...
'TimerFcn',@ExecuteTask,...
'ErrorFcn',@ExecuteError,...
'Period',1,'TasksToExecute',100,...
'ExecutionMode','fixedrate');
ud=struct('linehandle',lh,'count',0);
set(t,'UserData',ud);
start(t);
function ExecuteTask(obj,eventdata,UserData) ;
ud=obj.UserData;
l=ud.linehandle;
c=ud.count;
t=get(l,'XData');
y=get(l,'YData');
t=[t c];
y=[y sin(0.1*c)];
set(ud.linehandle,'XData',t,'YData',y);
drawnow; %一般放置在set命令后,用于重构刷新图形。
ud.count=ud.count+1;
set(obj,'UserData',ud);
end
以上给出了一个使用Timer画图的方法。
(4)关于Timer的函数
1.start();
2.stop();
3.timerfind();
eg.删除所有的timer
ts=timerfind;
if length(ts)>0
stop(ts);
delete(ts);
end
通过Name查找特定的Timer:
t=timerfind('Name','FebirdTimer');
例如:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
tb= timer('Name','ButtonTimer','StartDelay', 4,'Period', 4,'TasksToExecute', 2,...
'ExecutionMode','fixedRate');
tb.StartFcn = {'my_callback_fcn', 'My start message'};
tb.StopFcn = { @my_callback_fcn, 'My stop message'};
tb.TimerFcn = @(x,y)disp('Hello World!');
start(tb);
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
tb=timerfind('Name','ButtonTimer');
if length(tb)>0
stop(tb);
delete(tb);
end
function my_callback_fcn(obj, event, string_arg)%传入参数,前两个为默认参数
%其中event.Type为回调函数类型,event.Data为回调函数数据
txt1 = ' event occurred at ';
txt2 = string_arg;
event_type = event.Type;%get type
event_time = datestr(event.Data.time);%get timer period
msg = [event_type txt1 event_time];
disp(msg)
disp(txt2)
end
以上给出了通过GUI button 按钮来控制timer开始和终止的方法。
(整理:程翔宇chanceller@163.com)
matlab中的timer模块,[转载]Matlab中Timer的使用相关推荐
- matlab制作动画并保存,[转载]Matlab中动画的实现、制作和保存(转载Matlab技术论坛)...
Matlab中动画的实现.制作和保存(转载Matlab技术论坛) 本帖由Matlab技术论坛原创,原帖参见 http://www.matlabsky.com/thread-592-1-1.html 光 ...
- matlab作动态函数曲线图,[转载]Matlab中使用Plot函数动态画图方法总结
本帖最后由 sonictl 于 2012-12-31 12:18 编辑 请删除我 清楚超靠靠靠 没办法,一会儿限制这不能发表,那不能发表的.... [转载]Matlab中使用Plot函数动态画图方法总 ...
- matlab surf颜色,科学网[转载]matlab中控制mesh或者surf的颜色
科学网[转载]matlab中控制mesh或者surf的颜色 曲面的顏色越发柔順滑腻,del2 (Z) 根據數值微分來產生矩陣 Z 的 discrete Laplacian, Y,surf 及 mesh ...
- matlab中图像映射实例,[转载]Matlab实现多种图像配准(转)
本文讲述如何利用Matlab Image Processing Toolbox中的图像配准工具实现线性正投影.仿射.投影.多项式.分段线性.局部加权平均配准的过程. 实验平台 X86 PC,Windo ...
- matlab读ascii的dat,[转载]MATLAB读取和调用各种数据(txt,dat,ma
例2-1 %exam1.m [f,message]=fopen('fileexam1', 'r') if f==-1 disp (message); %显示错误信息 end 若文件fileexam1不 ...
- matlab 图像处理 新浪 应变,[转载]Matlab图像处理小结
经常做做图像处理的东西,时间长了,有些函数就忘了,看到网上有人总结,收藏了. 1. 图像和图像数据 缺省情况下,MATLAB将图像中的数据存储为双精度类型(double),64位浮点数,所需存储量很大 ...
- matlab 实现分层聚类算法,[转载]MATLAB层次聚类分析法(转)
层次聚类是基于距离的聚类方法,MATLAB中通过pdist.linkage.dendrogram.cluster等函数来完成.层次聚类的过程可以分这么几步: (1) 确定对象(实际上就是数据集中的每个 ...
- matlab imshow加画网格,[转载]matlab中imshow函数
函数简介 imshow是matlab中显示图像的函数.在matlab的命令窗口中输入doc imshow即可得到关于该函数的帮助信息. 调用方式 imshow(I,n) imshow(I,[low h ...
- matlab中ss函数_[转载]matlab ss函数 tf函数
ss 指定状态空间模型或者将线性时不变系统转成状态空间 语法 ss sys = ss(a,b,c,d) sys = ss(a,b,c,d,Ts) sys = ss(d) sys = ss(a,b,c, ...
最新文章
- Microsoft.NET框架程序设计--20 CLR寄宿、应用程序域、反射
- LSD-SLAM 编译过程(Ubuntu 14.04 + ROS Indigo
- stm32f4之GPIO
- Java笔记学习2.2.2 常量与变量 - 常量
- day15【前台】项目发布
- 基于vue开发简易备忘录,实现列表增删
- android移动应用基础教程源代码,《Android移动应用基础教程》之Android购物商城
- 易效能:有哪些可以高效休息的方法?
- 关于VB中Print函数在数组中换行的理解
- SpringBoot读取自定义配置文件
- 给华南x99打鸡血BIOS教程
- excel中if的嵌套使用方法
- 2020年个人所得税计算方法(附带计算器)
- 计算机二级答题技巧口诀,计算机二级考试答题技巧(祝逢考必过)
- 工欲善其事,必先利其器 - 修炼Android Studio操作技巧
- CornerNet Guassian radius高斯半径的确定-数学公式详解
- 无法启动此程序因为计算机丢失msvcr110.dll,Win7运行程序提示计算机中丢失msvcr110.dll如何解决...
- 一文了解新型AMM方案Caspian,解决L2导致的流动性碎片化问题
- 机器学习项目实战(五) 住房价格预测
- 论文阅读|两人零和马尔可夫博弈的在线极大极小Q网络学习《Online Minimax Q Network Learning for TZMGs》