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的使用相关推荐

  1. matlab制作动画并保存,[转载]Matlab中动画的实现、制作和保存(转载Matlab技术论坛)...

    Matlab中动画的实现.制作和保存(转载Matlab技术论坛) 本帖由Matlab技术论坛原创,原帖参见 http://www.matlabsky.com/thread-592-1-1.html 光 ...

  2. matlab作动态函数曲线图,[转载]Matlab中使用Plot函数动态画图方法总结

    本帖最后由 sonictl 于 2012-12-31 12:18 编辑 请删除我 清楚超靠靠靠 没办法,一会儿限制这不能发表,那不能发表的.... [转载]Matlab中使用Plot函数动态画图方法总 ...

  3. matlab surf颜色,科学网[转载]matlab中控制mesh或者surf的颜色

    科学网[转载]matlab中控制mesh或者surf的颜色 曲面的顏色越发柔順滑腻,del2 (Z) 根據數值微分來產生矩陣 Z 的 discrete Laplacian, Y,surf 及 mesh ...

  4. matlab中图像映射实例,[转载]Matlab实现多种图像配准(转)

    本文讲述如何利用Matlab Image Processing Toolbox中的图像配准工具实现线性正投影.仿射.投影.多项式.分段线性.局部加权平均配准的过程. 实验平台 X86 PC,Windo ...

  5. matlab读ascii的dat,[转载]MATLAB读取和调用各种数据(txt,dat,ma

    例2-1 %exam1.m [f,message]=fopen('fileexam1', 'r') if f==-1 disp (message); %显示错误信息 end 若文件fileexam1不 ...

  6. matlab 图像处理 新浪 应变,[转载]Matlab图像处理小结

    经常做做图像处理的东西,时间长了,有些函数就忘了,看到网上有人总结,收藏了. 1. 图像和图像数据 缺省情况下,MATLAB将图像中的数据存储为双精度类型(double),64位浮点数,所需存储量很大 ...

  7. matlab 实现分层聚类算法,[转载]MATLAB层次聚类分析法(转)

    层次聚类是基于距离的聚类方法,MATLAB中通过pdist.linkage.dendrogram.cluster等函数来完成.层次聚类的过程可以分这么几步: (1) 确定对象(实际上就是数据集中的每个 ...

  8. matlab imshow加画网格,[转载]matlab中imshow函数

    函数简介 imshow是matlab中显示图像的函数.在matlab的命令窗口中输入doc imshow即可得到关于该函数的帮助信息. 调用方式 imshow(I,n) imshow(I,[low h ...

  9. 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, ...

最新文章

  1. Microsoft.NET框架程序设计--20 CLR寄宿、应用程序域、反射
  2. LSD-SLAM 编译过程(Ubuntu 14.04 + ROS Indigo
  3. stm32f4之GPIO
  4. Java笔记学习2.2.2 常量与变量 - 常量
  5. day15【前台】项目发布
  6. 基于vue开发简易备忘录,实现列表增删
  7. android移动应用基础教程源代码,《Android移动应用基础教程》之Android购物商城
  8. 易效能:有哪些可以高效休息的方法?
  9. 关于VB中Print函数在数组中换行的理解
  10. SpringBoot读取自定义配置文件
  11. 给华南x99打鸡血BIOS教程
  12. excel中if的嵌套使用方法
  13. 2020年个人所得税计算方法(附带计算器)
  14. 计算机二级答题技巧口诀,计算机二级考试答题技巧(祝逢考必过)
  15. 工欲善其事,必先利其器 - 修炼Android Studio操作技巧
  16. CornerNet Guassian radius高斯半径的确定-数学公式详解
  17. 无法启动此程序因为计算机丢失msvcr110.dll,Win7运行程序提示计算机中丢失msvcr110.dll如何解决...
  18. 一文了解新型AMM方案Caspian,解决L2导致的流动性碎片化问题
  19. 机器学习项目实战(五) 住房价格预测
  20. 论文阅读|两人零和马尔可夫博弈的在线极大极小Q网络学习《Online Minimax Q Network Learning for TZMGs》

热门文章

  1. 机器学习Tips:关于Scikit-Learn的 10 个小秘密
  2. 过来人经验:实验室没人教你怎么办?
  3. 【资源】NLP 算法工程师相关的面试题
  4. Python 为什么要保留显式的 self ?
  5. Linux系统中运行.sh文件的几种方法
  6. 面向软件工程师的卡尔曼滤波器
  7. LOJ6435 PKUSC2018 星际穿越
  8. 面试官问:ZooKeeper 一致性协议 ZAB 原理
  9. 游戏行业两大核心问题:数据挖掘与安全
  10. find命令删除大量小文件