タイマーを使用したコマンドの実行のスケジュール
概要
MATLAB® には、MATLAB コマンドの実行のスケジュールに使用できる timer オブジェクトあります。この節では、timer オブジェクトの作成、タイマー実行の開始、タイマーが始動するときに実行したい処理の指定などの方法を説明します。timer オブジェクトで指定された時間が経過し、timer オブジェクトで指定したコマンドが実行されるときに、タイマーは "始動する" と言われます。
タイマーを使用するには、以下のステップを実行します。
timer オブジェクトを作成します。
関数
timer
を使用して timer オブジェクトを作成します。タイマーが始動した際に実行し、timer オブジェクトの動作の他の点をコントロールする、MATLAB コマンドを指定します。
この情報の指定には、timer オブジェクトのプロパティを使用します。timer オブジェクトでサポートされているすべてのプロパティの詳細については、
timer
を参照してください。ステップ 1 で timer オブジェクトを作成する際に、プロパティを設定することもできます。timer オブジェクトを起動します。
timer オブジェクトの使用を終了後、timer オブジェクトを削除します。
timer オブジェクトの使用が終了したら、メモリから削除しなければなりません。詳細については、
delete
を参照してください。
メモ
指定した実行時間とタイマーの実際の実行は、timer オブジェクトは MATLAB シングルスレッド実行環境で動作するため、異なります。このタイムラグの長さは、MATLAB が実行している他の処理が何であるかに依存します。イベント キュー内のコールバック関数の実行を強制するためには、コード内に関数 drawnow
への呼び出しを含めます。関数 drawnow
は、イベント キューをフラッシュします。
例: メッセージの表示
次の例は、10 秒が経過した後に MATLAB コマンドの文字ベクトルを実行する timer オブジェクトを設定します。この例では、2 つの timer オブジェクト プロパティ TimerFcn
と StartDelay
の値を指定して、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.