timerfind
timer オブジェクトの検索
説明
は表示状態の timer オブジェクトを検索し、配列 out = timerfindout を返します。
は、プロパティ値が out = timerfind(Name,Value)Name,Value の引数として渡された値と一致する表示状態の timer オブジェクトを検索し、配列 out を返します。Value は空の配列にできます。この場合、timerfind は Name で指定されたプロパティに空の値をもつタイマーを検索します。
は、out = timerfind(t,Name,Value)Name,Value のペアの引数を t にリストされている timer オブジェクトに一致させ (ここで、t は timer オブジェクトの配列)、配列 out を返します。
例
複数の個別のタイマーとタイマーの配列を作成します。
t1 = timer('Tag','broadcastProgress','UserData','Monday'); t2 = timer('Tag','displayProgress','UserData','Monday'); timerArr = [timer('Tag','broadcastProgress','UserData','Tuesday'); timer('Tag','displayProgress','UserData','Tuesday'); timer('Tag','displayProgress','UserData','Wednesday');];
メモリ内のすべてのタイマーを検索します。
out1 = timerfind
out1 = Timer Object Array Index: ExecutionMode: Period: TimerFcn: Name: 1 fixedSpacing 30 @(~,~)logStack() timer-1 2 singleShot 1 '' timer-2 3 singleShot 1 '' timer-3 4 singleShot 1 '' timer-4 5 singleShot 1 '' timer-5 6 singleShot 1 '' timer-6
メモリ内に存在し、Tag プロパティの値が 'displayProgress' のタイマーのみを検索します。
out2 = timerfind('Tag','displayProgress')
out2 = Timer Object Array Index: ExecutionMode: Period: TimerFcn: Name: 1 singleShot 1 '' timer-3 2 singleShot 1 '' timer-5 3 singleShot 1 '' timer-6
タイマーの検索対象を timerArr 内にある Tag プロパティの値が 'displayProgress' の timer オブジェクトに制限します。
out3 = timerfind(timerArr,'Tag','displayProgress')
out3 = Timer Object Array Index: ExecutionMode: Period: TimerFcn: Name: 1 singleShot 1 '' timer-5 2 singleShot 1 '' timer-6
対象となる Tag および UserData プロパティを含む struct を定義します。
searchStruct = struct('Tag','broadcastProgress','UserData','Monday')
searchStruct = struct with fields:
Tag: 'broadcastProgress'
UserData: 'Monday'
検索条件として struct を使用して、メモリ内の timer オブジェクトを検索します。
out4 = timerfind(searchStruct)
out4 =
Timer Object: timer-2
Timer Settings
ExecutionMode: singleShot
Period: 1
BusyMode: drop
Running: off
Callbacks
TimerFcn: ''
ErrorFcn: ''
StartFcn: ''
StopFcn: ''
timer オブジェクトを削除します。
delete(t1) delete(t2) delete(timerArr)
関数 timerfind を使用して、ワークスペースからタイマー変数が削除されている場合でも、複数のタイマーを同時に停止します。
100 個の乱数を生成し、1,000,000 回実行する timer オブジェクトを 2 つ作成します。「Timer has stopped」というメッセージを表示する StopFcn コールバックを定義します。タイマーを開始し、タイマーが実行中であることを確認します。
t1 = timer('TimerFcn','rand(100,1);',... 'ExecutionMode','fixedSpacing','TasksToExecute',1e6,... 'StopFcn','disp(''Timer1 has stopped.'')'); t2 = timer('TimerFcn','rand(100,1);',... 'ExecutionMode','fixedSpacing','TasksToExecute',1e6,... 'StopFcn','disp(''Timer2 has stopped.'')'); start([t1 t2])
ワークスペースからタイマー変数をクリアします。
clear
timerfind を使用してタイマーを手動で停止し、タイマーが動作していないことを確認します。
stop(timerfind) t1.Running
ans = 'off'
t2.Running
ans = 'off'
タイマーを削除します。
delete(timerfind)
タイマーの配列を作成して、メモリ内に既存のタイマーが存在することをシミュレートします。カスタム名が付けられたタイマーを作成します。表示状態のすべてのタイマーを一覧表示します。
existingTimers = [timer timer timer]; myTimerName = 'myTimer'; anotherTimer = timer('Name',myTimerName); timerfind
Timer Object Array Index: ExecutionMode: Period: TimerFcn: Name: 1 singleShot 1 '' timer-1 2 singleShot 1 '' timer-2 3 singleShot 1 '' timer-3 4 singleShot 1 '' myTimer
指定されたタイマーを削除し、表示状態のすべてのタイマーを一覧表示します。
delete(timerfind('Name',myTimerName));
timerfindTimer Object Array Index: ExecutionMode: Period: TimerFcn: Name: 1 singleShot 1 '' timer-1 2 singleShot 1 '' timer-2 3 singleShot 1 '' timer-3
表示状態のすべてのタイマーをメモリから削除します。
delete(timerfind)
timerfind を使用して、「失われた」timer オブジェクト参照を検索します。ワークスペースから timer オブジェクトをクリアすると参照は失われますが、メモリからは削除されません。
2 つの timer オブジェクトを作成します。コールバック関数は timer または event オブジェクトを必要としないため、チルダ (~) 演算子を使用して、関数ハンドルの入力を無視できます。
t1 = timer('TimerFcn',@(~,~)disp('Timer 1 Fired!')); t2 = timer('TimerFcn',@(~,~)disp('Timer 2 Fired!')); whos
Name Size Bytes Class Attributes t1 1x1 104 timer t2 1x1 104 timer
ワークスペースから timer オブジェクトを 1 つをクリアします。メモリからタイマーを削除するには、クリアして削除します。
clear t1
whosName Size Bytes Class Attributes t2 1x1 104 timer
タイマー t1 の削除を試みます。
delete(t1)
Undefined function or variable 't1'.
参照がクリアされているため、削除操作を使用してメモリからタイマー t1 を削除できません。
メモリ内にある有効な timer オブジェクトを検索します。
out = timerfind
Timer Object Array Index: ExecutionMode: Period: TimerFcn: Name: 1 singleShot 1 1x1 function_handle arraytimer-1 2 singleShot 1 1x1 function_handle arraytimer-2
2 つのタイマーが見つかったため、ワークスペースにどちらのタイマーが存在しないかを判別します。
out ~= t2
ans =
1 0
out の最初の timer オブジェクトは t2 と等しくありません。このオブジェクトは以前は t1 でした。これを t1 に再度割り当てます。このオブジェクトはまだ有効なため、タイマーを開始できます。
t1 = out(1); start(t1)
Timer 1 Fired!
timer オブジェクトを削除します。timerfind を使用して、メモリ内にある timer オブジェクトにアクセスします。オブジェクトはコピーされないため、メモリから out を削除する必要はありません。タイマーが削除されたことを確認するには、timerfind を使用します。
delete(t1) delete(t2) timerfind
ans =
[]4 つの timer オブジェクトを作成します。
t1 = timer('TimerFcn',@(~,~)disp('Timer 1 Fired!')); t2 = timer('TimerFcn',@(~,~)disp('Timer 2 Fired!')); t3 = timer('TimerFcn',@(~,~)disp('Timer 3 Fired!')); t4 = timer('TimerFcn',@(~,~)disp('Timer 4 Fired!'));
ワークスペースから 2 つのタイマーをクリアします。
clear t2 t3
timerfind を delete に渡して、ワークスペース内に存在しているかどうかにかかわらず、メモリからすべての timer オブジェクトを削除します。
delete(timerfind) timerfind
ans =
[]入力引数
検索するタイマー。timer オブジェクトまたは timer オブジェクトの配列として指定します。
例: out = timerfind(t)
タイマー プロパティ名に対応するフィールド名をもつ構造体。フィールド値は、対応するプロパティ値です。
例: out = timerfind(S)
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。
例: out = timerfind('BusyMode','drop')
コールバック関数のプロパティ
タイマー コールバック関数。文字ベクトル、string スカラー、関数ハンドル、または cell 配列として指定します。タイマーを開始する前に、このプロパティを定義しなければなりません。イベント キュー内のコールバック関数の実行を強制するためには、コード内に関数 drawnow への呼び出しを含めます。関数 drawnow は、イベント キューをフラッシュします。
関数ハンドルを使用してこのプロパティを指定する場合、MATLAB® がコールバックを実行すると、
timerオブジェクトとイベント構造体をコールバック関数に渡します。イベント構造体には、Typeフィールド内のイベントのタイプとDataフィールド内のイベントの時間が含まれます。文字ベクトルまたは string スカラーを使用してこのプロパティを指定した場合、MATLAB は、コールバックの実行時にその文字ベクトルに含まれる MATLAB コードを評価します。コールバックを文字ベクトルとして定義することは推奨されていません。関数ハンドルとして指定された関数を使用すると、MATLAB でコールバック関数に重要な情報を渡すことができます。
コールバック関数が、
timerオブジェクトとイベント データに加えて引数を受け入れる場合、このプロパティを、関数ハンドルと追加引数が含まれる cell 配列として指定します。
詳細については、タイマー コールバック関数を参照してください。
例: t = timer('TimerFcn',"MyTimerFunction(Input);")
タイマー開始コールバック関数。文字ベクトル、string スカラー、関数ハンドル、または cell 配列として指定します。
関数ハンドルを使用してこのプロパティを指定する場合、MATLAB がコールバックを実行すると、
timerオブジェクトとイベント構造体をコールバック関数に渡します。イベント構造体には、Typeフィールド内のイベントのタイプとDataフィールド内のイベントの時間が含まれます。文字ベクトルまたは string スカラーを使用してこのプロパティを指定した場合、MATLAB は、コールバックの実行時にその文字ベクトルに含まれる MATLAB コードを評価します。コールバックを文字ベクトルとして定義することは推奨されていません。関数ハンドルとして指定された関数を使用すると、MATLAB でコールバック関数に重要な情報を渡すことができます。
コールバック関数が、
timerオブジェクトとイベント データに加えて引数を受け入れる場合、このプロパティを、関数ハンドルと追加引数が含まれる cell 配列として指定します。
詳細については、タイマー コールバック関数を参照してください。
例: t = timer('StartFcn',@MyStartFunction(~,~))
タイマー停止コールバック関数。文字ベクトル、string スカラー、関数ハンドル、または cell 配列として指定します。
関数ハンドルを使用してこのプロパティを指定する場合、MATLAB がコールバックを実行すると、
timerオブジェクトとイベント構造体をコールバック関数に渡します。イベント構造体には、Typeフィールド内のイベントのタイプとDataフィールド内のイベントの時間が含まれます。文字ベクトルまたは string スカラーを使用してこのプロパティを指定した場合、MATLAB は、コールバックの実行時にその文字ベクトルに含まれる MATLAB コードを評価します。コールバックを文字ベクトルとして定義することは推奨されていません。関数ハンドルとして指定された関数を使用すると、MATLAB でコールバック関数に重要な情報を渡すことができます。
コールバック関数が、
timerオブジェクトとイベント データに加えて引数を受け入れる場合、このプロパティを、関数ハンドルと追加引数が含まれる cell 配列として指定します。
詳細については、タイマー コールバック関数を参照してください。
タイマーは、以下の状態のときに停止します。
タイマーの
stopメソッドを呼び出した場合。タイマーが
TimerFcnの実行を終了した場合。つまり、TasksExecuted値がTasksToExecuteによって設定された制限に達した場合。エラーが発生します。
ErrorFcnコールバックが最初に呼び出され、その後にStopFcnコールバックが呼び出されます。
StopFcn を使用して、メモリからの timer オブジェクトの削除などのクリーンアップ操作を定義できます。
例: t = timer('StopFcn',@MyStopFunction(~,~))
タイマー エラー コールバック関数。文字ベクトル、string スカラー、関数ハンドル、または cell 配列として指定します。エラーが発生すると、この関数が実行され、StopFcn が呼び出されます。
文字ベクトルまたは string スカラーを使用してこのプロパティを指定した場合、MATLAB は、コールバックの実行時にその文字ベクトルに含まれる MATLAB コードを評価します。
関数ハンドルを使用してこのプロパティを指定する場合、MATLAB がコールバックを実行すると、
timerオブジェクトとイベント構造体をコールバック関数に渡します。イベント構造体には、Typeフィールド内のイベントのタイプとDataフィールド内のイベントの時間が含まれます。コールバック関数が、
timerオブジェクトとイベント データに加えて引数を受け入れる場合、このプロパティを、関数ハンドルと追加引数が含まれる cell 配列として指定します。
詳細については、タイマー コールバック関数を参照してください。
例: t = timer('ErrorFcn','disp("An error has occurred")')
タイミング プロパティ
実行間の遅延。秒単位で 0.001 より大きい数値として指定します。タイマーで Period を使用するには、複数の timer オブジェクトのコールバック イベントのスケジュールを設定するように、ExecutionMode と TasksToExecute を設定しなければなりません。
例: t = timer('Period',5)
タイマーの開始と最初の実行との間の遅延。秒単位で 0 以上の数値として指定します。Running = 'on' の場合、StartDelay は読み取り専用です。
例: t = timer('StartDelay',2)
タイマー コールバック関数の実行回数。0 より大きい数値として指定します。TasksToExecute プロパティを使用して、実行回数を設定します。TasksToExecute を使用するには、複数のタイマー コールバック イベントのスケジュールを設定するように、ExecutionMode を設定しなければなりません。
例: t = timer('TasksToExecute',5)
タイマー関数コールバックのキューイング。次の表のいずれかの値として指定します。このプロパティを使用して、TimerFcn の前の実行が完了する前に、タイマーが TimerFcn を実行しなければならない場合に行う操作を指定します。Running プロパティが 'on' に設定されている場合、BusyMode プロパティは読み取り専用です。
| キューが空の場合の動作 | キューが空でない場合の動作 | メモ |
|---|---|---|---|
| キューにタスクを追加 | タスクを無視 | 場合によって、 |
| キューにタスクを追加 | タスクを完了。 | 実行キュー内のタスクを実行した後、タイマーを停止 |
| キューにタスクを追加 | キューが空になるまで待機してから、キューにタスクを格納 | 実行キューのタスクを管理するように、 |
詳細については、タイマー キューの競合への対処を参照してください。
例: t = timer('BusyMode','error')
タイマー関数コールバックのスケジューリング。次の表のいずれかの値として指定します。Running='on' の場合、ExecutionMode は読み取り専用です。次の表は、実行モードをまとめたものです。
実行モード |
|
|---|---|
| タイマー コールバック関数は一度だけ実行されます。このため、 |
| タイマー コールバック関数を MATLAB 実行キューに追加した直後に開始します。 |
| MATLAB 実行キューの遅延に起因するタイム ラグ後、タイマー関数コールバックの実行が再開された後に開始します。 |
| タイマー コールバック関数の実行が終了すると開始します。 |
'singleShot'は、timerクラスに対する単一実行モードで、既定の値です。
'fixedDelay'、'fixedRate'および'fixedSpacing'は、サポートされている 3 つのマルチ実行モードです。これらのモードは、Periodプロパティの開始点を定義します。Periodプロパティは、実行間の時間間隔 (実行間隔は同じ) を指定します。実行が始まる時点のみ異なります。

例: t = timer('ExecutionMode','fixedDelay')
ラベル付けプロパティ
タイマーの名前。文字ベクトルまたは string スカラーとして指定します。
既定では 'timer-i' となります。ここで i はこのセッションで作成された i 番目の timer オブジェクトを示す番号です。i を 1 にリセットするには、clear classes コマンドを実行します。
例: t = timer('Name','MyTimer')
オブジェクトのラベル。文字ベクトルまたは string スカラーとして指定します。
例: t = timer('Tag','TimerTag')
オブジェクトの可視性。'on' または 'off' として指定します。アプリケーションによって作成された timer オブジェクトにエンドユーザーがアクセスすることを抑止できます。関数 timerfind は、ObjectVisibility プロパティが 'off' に設定されているオブジェクトを返しません。オブジェクトは、表示されませんが有効です。表示されないものも含めて、メモリ内にあるすべての timer オブジェクトのリストを抽出するには、関数 timerfindall を使用します。
例: t = timer('ObjectVisibility','off')
オブジェクトに追加するデータ用の汎用フィールド。
例: t = timer('UserData',"This is my first timer!")
読み取り専用プロパティ
実行間の平均時間。数値スカラーとして秒単位で指定します。タイマーが 2回、タイマー コールバックを実行するまで、値は NaN です。
最新 2 回の実行の間隔。数値スカラーとして秒単位で指定します。タイマーが 2回、タイマー コールバックを実行するまで、値は NaN です。
コールバック関数のアクティブな実行を示すインジケーター。'off' または 'on' として指定します。
タイマーが実行された回数。数値スカラーとして指定します。
オブジェクト タイプを識別する文字ベクトル。
出力引数
検出された timer オブジェクト。timer オブジェクトの配列として返されます。
詳細
"表示状態の timer オブジェクト" は、メモリ内に存在し、ObjectVisibility プロパティが「on」に設定されている timer オブジェクトです。
ヒント
timerfindは表示状態の timer オブジェクトのみを検索します。表示状態の timer オブジェクトはメモリ内に存在し、ObjectVisibilityプロパティが'on'に設定されているオブジェクトです。非表示で有効なオブジェクトを検索するには、timerfindallを使用します。
バージョン履歴
R2006a より前に導入
参考
timer | delete | get | set | timerfindall
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)