This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Measure time required to run function


t = timeit(f)
t = timeit(f,numOutputs)



t = timeit(f) measures the typical time (in seconds) required to run the function specified by the function handle f.


t = timeit(f,numOutputs) calls f with the desired number of outputs, numOutputs. By default, timeit calls the function f with one output (or no outputs, if the function does not return any outputs).


collapse all

Use timeit to time a function call to date. This example uses a handle to a function that accepts no input.

f = @date;
t = timeit(f)
t = 1.5894e-04

Time the combination of several mathematical matrix operations: matrix transposition, element-by-element multiplication, and summation of columns.

A = rand(12000,400);
B = rand(400,12000);
f = @() sum(A.'.*B, 1);
ans = 0.0603

Determine how long it takes to run svd with one output argument, s = svd(X).

X = rand(100);
f = @() svd(X);
t1 = timeit(f)
t1 = 0.0011

Compare the results to svd with three output arguments, [U,S,V] = svd(X).

t2 = timeit(f,3)
t2 = 0.0050

Create a short function to allocate a matrix using nested loops. Preallocating an array using a nested loop is inefficient, but is shown here for illustrative purposes.

function mArr = preAllocFcn(x,y)
for m = 1:x
    for n = 1:y
        mArr(m,n) = 0;

Compare the time to allocate zeros to a matrix using nested loops and using the zeros function.

x = 1000;
y = 500;
g = @() preAllocFcn(x,y);
h = @() zeros(x,y);
diffRunTime = timeit(g)-timeit(h)
diffRunTime =


Input Arguments

collapse all

Function to be measured, specified as a function handle. f is either a handle to a function that takes no input, or a handle to an anonymous function with an empty argument list.

Number of desired outputs from f, specified as an integer. If the function specified by f has a variable number of outputs, numOutputs specifies which syntax timeit uses to call the function. For example, the svd function returns a single output, s, or three outputs, [U,S,V]. Set numOutputs to 1 to time the s = svd(X) syntax, or set it to 3 to time the [U,S,V] = svd(X) syntax.


  • The following actions result in unexpected output:

    • Using timeit between tic and toc
    • Using timeit to time a function that includes calls to tic and toc
    • Using timeit recursively


timeit calls the specified function multiple times, and computes the median of the measurements.

Introduced in R2013b