Main Content

タイマーを使用したコマンドの実行のスケジュール

概要

MATLAB® には、MATLAB コマンドの実行のスケジュールに使用できる timer オブジェクトあります。この節では、timer オブジェクトの作成、タイマー実行の開始、タイマーが始動するときに実行したい処理の指定などの方法を説明します。timer オブジェクトで指定された時間が経過し、timer オブジェクトで指定したコマンドが実行されるときに、タイマーは "始動する" と言われます。

タイマーを使用するには、以下のステップを実行します。

  1. timer オブジェクトを作成します。

    関数 timer を使用して timer オブジェクトを作成します。

  2. タイマーが始動した際に実行し、timer オブジェクトの動作の他の点をコントロールする、MATLAB コマンドを指定します。

    この情報の指定には、timer オブジェクトのプロパティを使用します。timer オブジェクトでサポートされているすべてのプロパティの詳細については、timer を参照してください。ステップ 1 で timer オブジェクトを作成する際に、プロパティを設定することもできます。

  3. timer オブジェクトを起動します。

    timer オブジェクトを作成し、関数 start または startat を使用して起動しなければなりません。

  4. timer オブジェクトの使用を終了後、timer オブジェクトを削除します。

    timer オブジェクトの使用が終了したら、メモリから削除しなければなりません。詳細については、deleteを参照してください。

メモ

指定した実行時間とタイマーの実際の実行は、timer オブジェクトは MATLAB シングルスレッド実行環境で動作するため、異なります。このタイムラグの長さは、MATLAB が実行している他の処理が何であるかに依存します。イベント キュー内のコールバック関数の実行を強制するためには、コード内に関数 drawnow への呼び出しを含めます。関数 drawnow は、イベント キューをフラッシュします。

例: メッセージの表示

次の例は、10 秒が経過した後に MATLAB コマンドの文字ベクトルを実行する timer オブジェクトを設定します。この例では、2 つの timer オブジェクト プロパティ TimerFcnStartDelay の値を指定して、timer オブジェクトを作成します。TimerFcn は、タイマー コールバック関数を指定します。これは、タイマーが始動するときに実行する MATLAB コマンドまたはプログラム ファイルです。この例では、タイマー コールバック関数は MATLAB ワークスペース変数 stat の値を設定し、MATLAB の disp コマンドを実行します。StartDelay プロパティは、タイマーが始動する前に経過する時間を指定します。

timer オブジェクトを作成した後、この例では timer オブジェクトを起動するために関数 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.

参考

関連するトピック