MATLAB Answers

tic toc inside a timeit

6 ビュー (過去 30 日間)
Maria
Maria 2014 年 10 月 27 日
コメント済み: Maria 2014 年 10 月 27 日
Hi,
I have a function "test". Inside this test function, I have a for loop that goes from 1 to N. Since I want to know the average time for each iteration, I put tic /toc, and a variable called "Time_for" will give me the average time, as you can see in the code below
test(x)
tic
for i=1:N
some operations
% code
end
Time_for=toc/N % this result is displayed in the command window, and not saved as an output of the function
Now, I want to compute the time execution of the function. For this purpose, in the main of the program, I use the timeit function, as you can see below
f=@()test(x);
time_function=timeit(f);
My problem is that, when I run timeit, the variable "Time_for", that should just be displayed only once, it is actually displayed 10 times. And for each of these 10 times, the value slightly changes.
Why the toc function, inside a timeit, is computed multiple times?
Best,
Maria

採用された回答

Adam
Adam 2014 年 10 月 27 日
I've never tried outputting to screen in a function wrapped in a timeit call, but I suspect the reason is simply because timeit runs your function multiple times in order to give a more accurate estimate of the function time than if you just ran it once with a tic toc. So if you output to the screen in your function it will likely do it however many times timeit runs your function.
Before timeit I used to create my own for loop, call my function many times and take an average, make sure each time had equal conditions and all that, but now timeit takes care of that for you.

その他の回答 (1 件)

Sean de Wolski
Sean de Wolski 2014 年 10 月 27 日
This is actually mentioned in the tips at the bottom of the doc for timeit
Unexpected results occur when you call tic and toc inside of timeit. If you are going to do this, be sure to assign an output to tic
myt = tic;
mystuff
toc(myt)
Of course printing to the command line takes some time too, so I would also disable that if really trying to time the code.
  1 件のコメント
Maria
Maria 2014 年 10 月 27 日
Thank you, I have not noticed the "Tips" section.

サインインしてコメントする。

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by