このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
timerfindall
すべての timer オブジェクトの検索
構文
説明
は、表示状態に関係なく、メモリ内に存在する timer オブジェクトを検索し、配列 out
= timerfindallout
を返します。ObjectVisibility
プロパティを使用して、オブジェクトの表示状態を設定します。
は、表示状態に関係なく、メモリ内に存在し、プロパティ値が out
= timerfindall(Name,Value
)Name,Value
の引数として渡された値と一致する timer オブジェクトを検索し、配列 out
を返します。Value
は空の配列にできます。この場合、timerfindall
は Name
で指定されたプロパティに空の値をもつタイマーを検索します。
は、out
= timerfindall(t
,Name,Value
)Name,Value
の引数を t
にリストされている timer オブジェクトに一致させ (ここで、t
は timer オブジェクトの配列)、配列 out
を返します。
例
すべてのタイマーの停止
関数 timerfindall
を使用して、ワークスペースからタイマー変数が削除されている場合でも、複数のタイマーを同時に停止します。
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
timerfindall
を使用してタイマーを手動で停止し、タイマーが動作していないことを確認します。
stop(timerfindall) t1.Running
ans = 'off'
t2.Running
ans = 'off'
タイマーを削除します。
delete(timerfindall)
メモリ内のすべてのタイマーの検索と削除
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!'));
タイマー t2
と t4
を非表示に設定します。
t2.ObjectVisibility = 'off'; t4.ObjectVisibility = 'off';
ワークスペースからタイマー t1
と t2
をクリアします。
clear t1 t2 whos
Name Size Bytes Class Attributes t3 1x1 104 timer t4 1x1 104 timer
メモリ内の表示状態のすべてのタイマーを検索します。
timerfind
Timer Object Array Index: ExecutionMode: Period: TimerFcn: Name: 1 singleShot 1 1x1 function_handle arraytimer-1 2 singleShot 1 1x1 function_handle arraytimer-3
timerfind
は、表示状態のタイマー t1
と t2
だけを検索します。タイマー t2
はワークスペースからはクリアされましたが、現在でも有効でメモリ内に存在しています。
メモリ内のすべてのタイマーを検索します。
timerfindall
Timer Object Array Index: ExecutionMode: Period: TimerFcn: Name: 1 singleShot 1 1x1 function_handle arraytimer-1 2 singleShot 1 1x1 function_handle arraytimer-2 3 singleShot 1 1x1 function_handle arraytimer-3 4 singleShot 1 1x1 function_handle arraytimer-4
t2
と t4
は非表示状態で、t1
と t2
はワークスペースからクリアされましたが、timerfindall
はメモリ内に存在する 4 つの有効なタイマーをすべて検索します。
メモリからすべてのタイマーを削除します。
delete(timerfindall)
非表示状態のタイマーの検索
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!'));
タイマー t2
と t4
を非表示に設定します。ワークスペースからタイマー t1
と t2
をクリアします。
t2.ObjectVisibility = 'off'; t4.ObjectVisibility = 'off'; clear t1 t2; whos
Name Size Bytes Class Attributes t3 1x1 104 timer t4 1x1 104 timer
有効で非表示状態のすべてのタイマーを検索します。
out = timerfindall('ObjectVisibility','off')
Timer Object Array Index: ExecutionMode: Period: TimerFcn: Name: 1 singleShot 1 1x1 function_handle arraytimer-2 2 singleShot 1 1x1 function_handle arraytimer-4
ワークスペースに存在するかどうかにかかわらず、有効で非表示状態のタイマーが両方とも timerfindall
によって検索されます。
メモリ内に存在する特定の timer オブジェクトの検索
複数の個別のタイマーとタイマーの配列を作成します。
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');];
タイマー t1
と timerArr(2)
を非表示にします。
t1.ObjectVisibility = 'off'; timerArr(2).ObjectVisibility = 'off';
timerfind
を使用して、メモリ内のすべてのタイマーを検索します。
out1 = timerfind
Timer Object Array Index: ExecutionMode: Period: TimerFcn: Name: 1 singleShot 1 '' timer-2 2 singleShot 1 '' timer-3 3 singleShot 1 '' timer-5
timerfind
は、非表示状態のタイマーを検索しません。
timerfindall
を使用して、メモリ内のすべてのタイマーを検索します。
out2 = timerfindall
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 '' timer-4 5 singleShot 1 '' timer-5
timerfindall
は、非表示状態のタイマーを含め、すべてのタイマーを検索します。
メモリ内に存在し、Tag
プロパティの値が 'displayProgress'
であるタイマーのみを検索します。
out3 = timerfindall('Tag','displayProgress')
Timer Object Array Index: ExecutionMode: Period: TimerFcn: Name: 1 singleShot 1 '' timer-2 2 singleShot 1 '' timer-4 3 singleShot 1 '' timer-5
タイマーの検索対象を、timerArr
内にある、Tag
プロパティの値が 'displayProgress'
である timer オブジェクトに制限します。
out4 = timerfindall(timerArr,'Tag','displayProgress')
Timer Object Array Index: ExecutionMode: Period: TimerFcn: Name: 1 singleShot 1 '' timer-4 2 singleShot 1 '' timer-5
対象となる Tag
および UserData
プロパティを含む struct
を定義します。
searchStruct = struct('Tag','broadcastProgress','UserData','Monday')
searchStruct = Tag: 'broadcastProgress' UserData: 'Monday'
検索条件として struct
を使用して、メモリ内の timer オブジェクトを検索します。
out5 = timerfindall(searchStruct)
Timer Object: timer-1 Timer Settings ExecutionMode: singleShot Period: 1 BusyMode: drop Running: off Callbacks TimerFcn: '' ErrorFcn: '' StartFcn: '' StopFcn: ''
timer オブジェクトを削除します。
delete(timerfindall)
入力引数
t
— timer オブジェクト
timer オブジェクト | timer オブジェクトの配列
検索するタイマー。timer オブジェクトまたは timer オブジェクトの配列として指定します。
例: out = timerfindall(t)
S
— フィールド名
タイマー プロパティ名に対応するフィールド名をもつ構造体
検索するタイマーのプロパティ。タイマー プロパティ名に対応するフィールド名をもつ構造体として指定します。フィールド値は、対応するプロパティ値です。
例: out = timerfindall(S)
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: out = timerfind('BusyMode','drop')
TimerFcn
— タイマー コールバック関数
文字ベクトル | string スカラー | 関数ハンドル | cell 配列
タイマー コールバック関数。文字ベクトル、string スカラー、関数ハンドル、または cell 配列として指定します。タイマーを開始する前に、このプロパティを定義しなければなりません。イベント キュー内のコールバック関数の実行を強制するためには、コード内に関数 drawnow
への呼び出しを含めます。関数 drawnow
は、イベント キューをフラッシュします。
関数ハンドルを使用してこのプロパティを指定する場合、MATLAB® がコールバックを実行すると、
timer
オブジェクトとイベント構造体をコールバック関数に渡します。イベント構造体には、Type
フィールド内のイベントのタイプとData
フィールド内のイベントの時間が含まれます。文字ベクトルまたは string スカラーを使用してこのプロパティを指定した場合、MATLAB は、コールバックの実行時にその文字ベクトルに含まれる MATLAB コードを評価します。コールバックを文字ベクトルとして定義することは推奨されていません。関数ハンドルとして指定された関数を使用すると、MATLAB でコールバック関数に重要な情報を渡すことができます。
コールバック関数が、
timer
オブジェクトとイベント データに加えて引数を受け入れる場合、このプロパティを、関数ハンドルと追加引数が含まれる cell 配列として指定します。
詳細については、タイマー コールバック関数を参照してください。
例: t = timer('TimerFcn',"MyTimerFunction(Input);")
StartFcn
— タイマー開始コールバック関数
文字ベクトル | string スカラー | 関数ハンドル | cell 配列
タイマー開始コールバック関数。文字ベクトル、string スカラー、関数ハンドル、または cell 配列として指定します。
関数ハンドルを使用してこのプロパティを指定する場合、MATLAB がコールバックを実行すると、
timer
オブジェクトとイベント構造体をコールバック関数に渡します。イベント構造体には、Type
フィールド内のイベントのタイプとData
フィールド内のイベントの時間が含まれます。文字ベクトルまたは string スカラーを使用してこのプロパティを指定した場合、MATLAB は、コールバックの実行時にその文字ベクトルに含まれる MATLAB コードを評価します。コールバックを文字ベクトルとして定義することは推奨されていません。関数ハンドルとして指定された関数を使用すると、MATLAB でコールバック関数に重要な情報を渡すことができます。
コールバック関数が、
timer
オブジェクトとイベント データに加えて引数を受け入れる場合、このプロパティを、関数ハンドルと追加引数が含まれる cell 配列として指定します。
詳細については、タイマー コールバック関数を参照してください。
例: t = timer('StartFcn',@MyStartFunction(~,~))
StopFcn
— タイマー停止コールバック関数
文字ベクトル | string スカラー | 関数ハンドル | cell 配列
タイマー停止コールバック関数。文字ベクトル、string スカラー、関数ハンドル、または cell 配列として指定します。
関数ハンドルを使用してこのプロパティを指定する場合、MATLAB がコールバックを実行すると、
timer
オブジェクトとイベント構造体をコールバック関数に渡します。イベント構造体には、Type
フィールド内のイベントのタイプとData
フィールド内のイベントの時間が含まれます。文字ベクトルまたは string スカラーを使用してこのプロパティを指定した場合、MATLAB は、コールバックの実行時にその文字ベクトルに含まれる MATLAB コードを評価します。コールバックを文字ベクトルとして定義することは推奨されていません。関数ハンドルとして指定された関数を使用すると、MATLAB でコールバック関数に重要な情報を渡すことができます。
コールバック関数が、
timer
オブジェクトとイベント データに加えて引数を受け入れる場合、このプロパティを、関数ハンドルと追加引数が含まれる cell 配列として指定します。
詳細については、タイマー コールバック関数を参照してください。
タイマーは、以下の状態のときに停止します。
タイマーの
stop
メソッドを呼び出した場合。タイマーが
TimerFcn
の実行を終了した場合。つまり、TasksExecuted
値がTasksToExecute
によって設定された制限に達した場合。エラーが発生します。
ErrorFcn
コールバックが最初に呼び出され、その後にStopFcn
コールバックが呼び出されます。
StopFcn
を使用して、メモリからの timer オブジェクトの削除などのクリーンアップ操作を定義できます。
例: t = timer('StopFcn',@MyStopFunction(~,~))
ErrorFcn
— タイマー エラー コールバック関数
文字ベクトル | string スカラー | 関数ハンドル | cell 配列
タイマー エラー コールバック関数。文字ベクトル、string スカラー、関数ハンドル、または cell 配列として指定します。エラーが発生すると、この関数が実行され、StopFcn
が呼び出されます。
文字ベクトルまたは string スカラーを使用してこのプロパティを指定した場合、MATLAB は、コールバックの実行時にその文字ベクトルに含まれる MATLAB コードを評価します。
関数ハンドルを使用してこのプロパティを指定する場合、MATLAB がコールバックを実行すると、
timer
オブジェクトとイベント構造体をコールバック関数に渡します。イベント構造体には、Type
フィールド内のイベントのタイプとData
フィールド内のイベントの時間が含まれます。コールバック関数が、
timer
オブジェクトとイベント データに加えて引数を受け入れる場合、このプロパティを、関数ハンドルと追加引数が含まれる cell 配列として指定します。
詳細については、タイマー コールバック関数を参照してください。
例: t = timer('ErrorFcn','disp("An error has occured")')
Period
— 実行間の遅延
1 (既定値) | 数値スカラー
実行間の遅延。秒単位で 0.001 より大きい数値として指定します。タイマーで Period
を使用するには、複数の timer オブジェクトのコールバック イベントのスケジュールを設定するように、ExecutionMode
と TasksToExecute
を設定しなければなりません。
例: t = timer('Period',5)
StartDelay
— タイマーの開始と最初の実行との間の遅延
0 (既定値) | 数値スカラー
タイマーの開始と最初の実行との間の遅延。秒単位で 0 以上の数値として指定します。Running = 'on'
の場合、StartDelay
は読み取り専用です。
例: t = timer('StartDelay',2)
TasksToExecute
— タイマー コールバック関数の実行回数
数値スカラー
タイマー コールバック関数の実行回数。0 より大きい数値として指定します。TasksToExecute
プロパティを使用して、実行回数を設定します。TasksToExecute
を使用するには、複数のタイマー コールバック イベントのスケジュールを設定するように、ExecutionMode
を設定しなければなりません。
例: t = timer('TasksToExecute',5)
BusyMode
— タイマー関数コールバックのキューイング
'drop'
(既定値) | 'error'
| 'queue'
タイマー関数コールバックのキューイング。次の表のいずれかの値として指定します。このプロパティを使用して、TimerFcn
の前の実行が完了する前に、タイマーが TimerFcn
を実行しなければならない場合に行う操作を指定します。Running
プロパティが 'on'
に設定されている場合、BusyMode
プロパティは読み取り専用です。
| キューが空の場合の動作 | キューが空でない場合の動作 | メモ |
---|---|---|---|
| キューにタスクを追加 | タスクを無視 | 場合によって、 |
| キューにタスクを追加 | タスクを完了。 | 実行キュー内のタスクを実行した後、タイマーを停止 |
| キューにタスクを追加 | キューが空になるまで待機してから、キューにタスクを格納 | 実行キューのタスクを管理するように、 |
詳細については、タイマー キューの競合への対処を参照してください。
例: t = timer('BusyMode','error')
ExecutionMode
— タイマー関数コールバックのスケジューリング
'singleShot'
(既定値) | 'fixedRate'
| 'fixedDelay'
| 'fixedSpacing'
タイマー関数コールバックのスケジューリング。次の表のいずれかの値として指定します。Running='on'
の場合、ExecutionMode
は読み取り専用です。次の表は、実行モードをまとめたものです。
実行モード |
|
---|---|
| タイマー コールバック関数は一度だけ実行されます。このため、 |
| タイマー コールバック関数を MATLAB 実行キューに追加した直後に開始します。 |
| MATLAB 実行キューの遅延に起因するタイム ラグ後、タイマー関数コールバックの実行が再開された後に開始します。 |
| タイマー コールバック関数の実行が終了すると開始します。 |
'singleShot'
は、timer
クラスに対する単一実行モードで、既定の値です。'fixedDelay'
、'fixedRate'
および'fixedSpacing'
は、サポートされている 3 つのマルチ実行モードです。これらのモードは、Period
プロパティの開始点を定義します。Period
プロパティは、実行間の時間間隔 (実行間隔は同じ) を指定します。実行が始まる時点のみ異なります。
例: t = timer('ExecutionMode','fixedDelay')
Name
— タイマーの名前
'timer-i'
(既定値) | 文字ベクトル | string スカラー
タイマーの名前。文字ベクトルまたは string スカラーとして指定します。
既定では 'timer-
i
'
となります。ここで i
はこのセッションで作成された i
番目の timer オブジェクトを示す番号です。i
を 1 にリセットするには、clear classes
コマンドを実行します。
例: t = timer('Name','MyTimer')
Tag
— オブジェクトのラベル
文字ベクトル | string スカラー
オブジェクトのラベル。文字ベクトルまたは string スカラーとして指定します。
例: t = timer('Tag','TimerTag')
ObjectVisibility
— オブジェクトの可視性
'on'
(既定値) | 'off'
オブジェクトの可視性。'on'
または 'off'
として指定します。アプリケーションによって作成された timer オブジェクトにエンドユーザーがアクセスすることを抑止できます。関数 timerfind
は、ObjectVisibility
プロパティが 'off'
に設定されているオブジェクトを返しません。オブジェクトは、表示されませんが有効です。表示されないものも含めて、メモリ内にあるすべての timer オブジェクトのリストを抽出するには、関数 timerfindall
を使用します。
例: t = timer('ObjectVisibility','off')
UserData
— ユーザー データ用のフィールド
任意の有効な MATLAB データ型
オブジェクトに追加するデータ用の汎用フィールド。
例: t = timer('UserData',"This is my first timer!")
AveragePeriod
— 実行間の平均時間
数値スカラー
実行間の平均時間。数値スカラーとして秒単位で指定します。タイマーが 2回、タイマー コールバックを実行するまで、値は NaN
です。
InstantPeriod
— 最新 2 回の実行の間隔
NaN
(既定値) | 数値スカラー
最新 2 回の実行の間隔。数値スカラーとして秒単位で指定します。タイマーが 2回、タイマー コールバックを実行するまで、値は NaN
です。
Running
— コールバック関数のアクティブな実行を示すインジケーター
'off'
| 'on'
コールバック関数のアクティブな実行を示すインジケーター。'off'
または 'on'
として指定します。
TasksExecuted
— タイマーが実行された回数
数値スカラー
タイマーが実行された回数。数値スカラーとして指定します。
Type
— オブジェクト タイプ
'timer'
(既定値)
オブジェクト タイプを識別する文字ベクトル。
出力引数
out
— 検出された timer オブジェクト
timer オブジェクトの配列
検出された timer オブジェクト。timer オブジェクトの配列として返されます。
詳細
表示状態の timer オブジェクト
"表示状態の timer オブジェクト" は、メモリ内に存在し、ObjectVisibility
プロパティが「on」に設定されている timer オブジェクトです。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)