Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

startat

クラス: timer

タイマーを指定時刻に始動するスケジュールの設定

説明

startat(t,firingTime) は、タイマー t が指定した時刻 firingTime に始動するようスケジュール設定します。コールバック関数 timerFcn を実行することでタイマーが始動します。firingTime は 現在の時刻から 25 日以内でなければなりません。

  • t が timer オブジェクトの配列で、firingTime がスカラーの場合、startat はすべてのタイマーが指定した時刻に始動するように設定します。

  • t が timer オブジェクトの配列で、firingTimet と同じサイズの配列の場合、startat は各タイマーが対応する時刻に始動するように設定します。

startat(t,Y,M,D) はタイマーを開始し、指定した年 (Y)、月 (M)、日 (D) で TimerFcn を実行するようにスケジュール設定します。

startat(t,Y,M,D,H,MI,S) は、時 (H)、分 (MI)、秒 (S) も指定します。

入力引数

t

timer クラスのオブジェクト。

firingTime

timer オブジェクトが始動する時刻。シリアル日付値、日付形式の文字表現、または日付ベクトルとして指定します。firingTime は単一の日付か、t の timer オブジェクトと同じ行数の日付の配列にすることができます。

  • シリアル日付値は、西暦 0 年の 1 月 1 日を 1 として開始します。シリアル日付値に関する詳細については、datenum を参照してください。

  • 日付の文字表現を指定するには、関数 datestr で定義される次の日付形式を使用します。0、1、2、6、13、14、15、16 または 23。これらの数値識別子は、関数 datestrformatOut プロパティで定義された形式に対応します。年を 2 桁で表現している日付は、今年を中心として 100 年間にある年と解釈されます。

  • 日付ベクトルは、m-by-6 または m-by-3 の行列として指定され、それぞれが m の完全な日付ベクトルまたは部分的な日付ベクトルを含みます。完全な日付ベクトルには、年、月、日、時、分および秒をこの順序で示す 6 つの要素があります。部分的な日付ベクトルには、年、月および日をこの順序で示す 3 つの要素があります。

Y,M,D

timer オブジェクトが始動する時刻。年 (Y)、月 (M)、日 (D) を示す数値として指定します。1 より小さい月の値は 1 に設定されます。他の引数は、ラップしたり負の値にすることができます。

Y,M,D,H,MI,S

timer オブジェクトが始動する時刻。指定した年 (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.'));

現在から 2 日後の00:00:00 に開始するように、タイマーのスケジュールを設定します。

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

タイマーを手動で停止して削除します。

stop(t)
delete(t)

アルゴリズム

  • startat メソッドは、タイマーがいつ実行を開始するかではなく、timer オブジェクトがいつ TimerFcn コールバックを実行するかを指定します。タイマーは startat メソッドに対する呼び出しを使用して、実行を開始します。

  • startat は指定された時刻に基づいて、timer オブジェクト t の 必須 StartDelay プロパティを計算し、設定します。さらに timer オブジェクトの Running プロパティを 'on' に設定し、StartFcn コールバックを実行します。

  • startattimer オブジェクトの startDelay プロパティを変更します。このため、startat はタイマーの startDelay プロパティの指定された値をオーバーライドします。

R2006a より前に導入