Why does the matlab bootstrap procedure evaluate N+1 times?

Viewed 197

I wanted to bootstrap with matlab using the built in command "bootstrp". What I noticed was that the procedure makes N+1 iterations when I am only asking for N iterations. Why is that? When I build a manual loop to do the bootstrapping, so that it really just runs N times, then it is faster. Here is a minimal example of the problem:

clear all

global iterationcounter

tic

iterationcounter=0;
data=unifrnd(0,1,1,1000); %draw vector of 1000 random numbers

bootstat = bootstrp(100,@testmean,data); %evaluate function for 100 bootstrap samples
toc

which uses the function

function [ m ] = testmean( data )
global iterationcounter

m=mean(data);

iterationcounter=iterationcounter+1

end

The function should evaluate 100 samples, yet when I run the script, it will evaluate the function 101 times:

...

iterationcounter =

101

Elapsed time is 0.102291 seconds.

So why should one use this build-in Matlab function that appears to waste time?

1 Answers
Related