Main Content

使用计时器安排命令的执行

概述

MATLAB® 软件包括一个计时器对象,您可以使用该对象安排 MATLAB 命令的执行。本部分介绍如何创建计时器对象,启动计时器运行,以及指定您希望在计时器触发时执行的过程。当计时器对象指定的时间已过且计时器对象执行您指定的命令时,即触发计时器。

要使用计时器,请执行以下步骤:

  1. 创建一个计时器对象。

    可使用 timer 函数创建计时器对象。

  2. 指定您希望在计时器触发时执行的 MATLAB 命令并控制计时器对象的其他各方面的行为。

    使用计时器对象属性指定此信息。要了解计时器对象支持的所有属性,请参阅 timer。您也可以在创建计时器对象属性(在步骤 1 中)时设置这些属性。

  3. 启动计时器对象。

    创建计时器对象后,必须使用 startstartat 函数启动该对象。

  4. 在处理完计时器对象后将其删除。

    在使用完计时器对象后,应将其从内存中删除。有关详细信息,请参阅delete

注意

计时器的指定执行时间和实际执行可能不同,这是因为计时器对象在 MATLAB 单线程执行环境中工作。该滞后时间的长短取决于 MATLAB 正在执行的其他过程。要强制执行事件队列中的回调函数,请在代码中包含对 drawnow 函数的调用。drawnow 函数会刷新事件队列。

示例:显示消息

以下示例设置一个计时器对象,该对象在 10 秒过后执行 MATLAB 命令字符向量。该示例将创建一个计时器对象,指定两个计时器对象属性 TimerFcnStartDelay 的值。TimerFcn 指定计时器回调函数。这是您要在计时器触发时执行的 MATLAB 命令或程序文件。在该示例中,计时器回调函数设置 MATLAB 工作区变量 stat 的值并执行 MATLAB disp 命令。StartDelay 属性指定计时器触发前已用的时间。

创建计时器对象后,该示例使用 start 函数启动计时器对象。(为了展示计时器,该示例中包括了一些其他命令,但这些命令并不是计时器操作必需的。)

t = timer('TimerFcn', 'stat=false; disp(''Timer!'')',... 
                 'StartDelay',10);
start(t)

stat=true;
while(stat==true)
  disp('.')
  pause(1)
end

当您执行此代码时,会生成以下输出:

.
.
.
.
.
.
.
.
.
Timer!

delete(t) % Always delete timer objects after using them.

另请参阅

相关主题