This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.


Measure time required to run function




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

Determine Time to Obtain Current Date

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 =


Determine Time to Compute Matrix Summation

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 =


Compare Time to Run svd with Multiple Outputs

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 =


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

t2 = timeit(f,3)
t2 =


Compare Time to Execute Custom Preallocation to Calling zeros

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

f — function to be measuredfunction handle

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.

numOutputs — Number of desired outputs from finteger

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.

More About

collapse all


  • 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.

See Also

| |

Introduced in R2013b

Was this topic helpful?