Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

startat

类: timer

排定计时器在指定时间触发回调

说明

示例

startat(t,firingTime) 排定计时器 t 在指定时间 firingTime 触发回调。计时器通过执行回调函数 timerFcn 而触发。firingTime 必须处于从当前时间开始的 25 天范围之内。

  • 如果 t 是一个计时器对象数组,而 firingTime 是一个标量,则 startat 会将所有计时器设置为在指定时间触发。

  • 如果 t 是一个计时器对象数组,而 firingTime 是一个大小与 t 相同的数组,则 startat 会将每个计时器设置为在对应时间触发。

示例

startat(t,Y,M,D) 启动计时器并排定在指定的年份 (Y)、月份 (M) 和日期 (D) 执行 TimerFcn

示例

startat(t,Y,M,D,H,MI,S) 还指定了小时 (H)、分钟 (MI) 和秒 (S)。

输入参数

t

timer 的对象。

firingTime

计时器对象触发回调的时间,指定为日期序列值、日期格式的字符表示或日期向量。firingTime 可以是单个日期,也可以是行数与 t 中的计时器对象数相同的日期数组。

  • 日期序列值指示自 0000 年 1 月 1 日以来经过的天数(从 1 开始)。有关日期序列值的其他信息,请参阅 datenum

  • 要指定日期的字符表示,请使用 datestr 函数定义的以下日期格式:0、1、2、6、13、14、15、16 或 23。这些数值标识符与 datestr 函数的 formatOut 属性定义的格式对应。年份为两个字符的日期被解释为属于以当前年份为中心的 100 年内。

  • 日期向量指定为 m-by-6m-by-3 矩阵,分别包含 m 个完整或部分日期向量。完整日期向量带有六个元素,依顺序分别指示年份、月份、日期、小时、分钟和秒。部分日期向量只带有三个元素,依顺序分别指示年份、月份和日期。

Y,M,D

计时器对象触发回调的时间,指定为一组数字,分别指示年份 (Y)、月份 (M) 和日期 (D)。小于 1 的月份值设置为 1;其他参数可以换行并带有负值。

Y,M,D,H,MI,S

计时器对象触发回调的时间,指定为一组数字,分别指示年份 (Y)、月份 (M)、日期 (D)、小时 (H)、分钟 (MI) 和秒 (S)。小于 1 的月份值设置为 1;其他参数可以换行并带有负值。

示例

全部展开

创建一个在启动时和触发时显示消息的计时器。

t = timer('TimerFcn', @(~,~)disp('Fired.'), ...
    'StartFcn', @(~,~)disp('Started.'));

使用序列日期将计时器设置为自目前时间起的 2 秒钟后触发。序列日期以天为单位指定。

two = 2/(60^2*24); % two seconds in serial time
fTime = now + two
startat(t,fTime);
fTime =

   7.3527e+05

Started.
Fired.

等待计时器触发,然后删除计时器。

delete(t)

创建一个在启动时和触发时显示消息的计时器。

t = timer('TimerFcn', @(~,~)disp('Fired.'), ...
    'StartFcn', @(~,~)disp('Started.'));

排定计时器从目前 00:00:00 起的 2 天后触发

[Y, M, D, H, MI, S] = datevec(now+2);
startat(t,Y,M,D)
Started.

手动停止并删除计时器。

stop(t)
delete(t)

算法

  • startat 方法用于指定计时器对象执行 TimerFcn 回调的时间,而非计时器开始运行的时间。调用 startat 方法时,计时器将开始运行。

  • startat 会根据指定的时间计算并设置计时器对象 t 所需的 StartDelay 属性。此外,它还会将计时器对象的 Running 属性设置为 'on',并执行 StartFcn 回调。

  • startat 修改 timer 对象的 startDelay 属性。同样地,startat 会覆盖计时器的 startDelay 属性的指定值。

在 R2006a 之前推出