我是靠谱客的博主 幽默香水,这篇文章主要介绍matlab脚本 定时停止_MATLAB下定时器(Timer)使用,现在分享给大家,希望可以做个参考。

当然有人会问,MATLAB不是做数据处理的工具吗,为什么需要定时器?其实任何系统下,定时器除了做时基,还可以让一些需要高优先级的任务并行,特别是可以代替MATLAB里的pause()的阻塞延时功能。

MATLAB的Timer使用,主要启动定时器(Start),停止定时器(Stop)和处理定时器回调事件。详细看代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
% 启动定时器 clear all; clc; % 删除现有的定时器,重新创建一个定时器 stop(timerfind); delete(timerfind); timer_id = timer; timer_id.StartDelay = 1.0; timer_id.Period = 1.0; % 周期性执行,fixedSpacing模式 timer_id.ExecutionMode = 'fixedSpacing'; timer_id.TimerFcn = @timer_handler; %启动定时器 start(timer_id); function timer_handler(~,~) persistent counter; if isempty(counter) counter = 0; end fprintf(1,'定时器回调=%dn',counter); counter = counter+1; end

注意,由于MATLAB是描述性语言架构,如果在定时器运行中继续启动仿真,会造成代码继续解释,同样功能的新的定时器就会产生(ID号不一样,回调是一样的入口)。所以,建议重新仿真前,删除所有定时器,使用delete函数操作。

复制代码
1
2
3
% 注意删除定时器之前,先暂停定时器 stop(timerfind); delete(timerfind);

关于定时器模式,一共有四种,大家或许不解为什么。是因为MATLAB所在的Windows平台的定时器不一定能保证实时性,为了尽量满足系统的需求(实时性和任务阻塞的最佳平衡),故而有多种模式供开发者配置。

执行模式ExecutionMode有四种:'singleShot'、'fixedDelay'、 'fixedRate'、 'fixedSpacing' ,第一个为定时一次,后三种为连续定时。如图在程序中可以看出这三种执行的先后时序。

v2-1b505ace96b20a2bdb8730f9869b2ed3_b.jpg

最后

以上就是幽默香水最近收集整理的关于matlab脚本 定时停止_MATLAB下定时器(Timer)使用的全部内容,更多相关matlab脚本内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部