2011-02-02 36 views
20

ループを実行するプログラムを持っていますループに2つの時間カウンター、1つはループ用、もう1つはループの反復処理にかかっています。私の知る限り、tictocは一度しか動作しません。MATLABのいくつかの時間カウンター

答えて

29

:ここでは大まかな例である

tic; someCode; elapsed = toc; 

しかし、別の構文があります:

start = tic; someCode; elapsed = toc(start); 

2番目の構文は同じになります同時に複数のストップウォッチタイマーを同時に実行するオプションがあります。 ticの出力を変数tStartに代入し、tocを呼び出すときに同じ変数を使用します。 MATLABは、ticとそれに関連するtocコマンドの間の経過時間を測定し、経過時間を秒単位で表示します。この構文を使用すると、ネストされた操作のタイミング(matlab documentation of tic toc)を含む、複数の並行操作に時間を割くことができます。

あなたのケースで使用する方法は次のとおりです。のは、これはあなたのコードであることを言ってみましょう:

for i = 1:M 
    someCode; 
end 

このようなTICとTOCを挿入します。

startLoop = tic; 
for i = 1:N 
    startIteration = tic; 
    someCode; 
    endIteration = toc(startIteration); 
end 
endLoop = toc(startLoop); 

あなたはまた、i番目の要素は、時間測定されたベクトルを作成するために、上記の構文を使用することができますi番目の反復のために。このように:

startLoop = tic; 
for i = 1:N 
    startIteration(i) = tic; 
    someCode; 
    endIteration(i) = toc(startIteration(i)); 
end 
endLoop = toc(startLoop); 
2

あなたはチックのためのMatlabのヘルプから、時間ネストされた操作にTICとTOCを使用することができます。

tStart=tic; any_statements; toc(tStart);は、同じ時間測定を行っていますが、同時に複数のストップウォッチタイマを実行するオプションができます。 ticの出力を変数tStartに代入し、tocを呼び出すときに同じ変数を使用します。 MATLABは、ticとそれに関連するtocコマンドの間の経過時間を測定し、経過時間を秒単位で表示します。この構文は、ネストされた操作のタイミング

1

を含む複数の同時操作が、私は今、この権利をしようとすることはできないんだけど、あなたはあなたにtic値を格納する場合は、複数のtictocステートメントを使用することができるはずの時間にできます変数。

これにはMatlab's documentationを読んで、それらをネストするセクションもあります。あなたはこれだけTIC TOCの構文に精通している

tStartOverall = tic; 

... 

tStartLoop = tic; 
<your loop code here> 
tEndLoop = toc(tStartLoop); 

... 

tEndOverall = toc(tStartOverall); 
関連する問題