cputime with kmeans return 0

4 visualizzazioni (ultimi 30 giorni)
Phu Lai
Phu Lai il 20 Dic 2016
Risposto: Walter Roberson il 20 Dic 2016
I am measuring the cputime taken by kmeans algorithm for each iteration using cputime feature. However, some iteration return cputime = 0. Here's my implementation:
load fisheriris;
[~,C] = kmeans(meas, 3, 'options',statset('MaxIter', 1),'Display', 'off');
results=[];
for i = 1:15
t=cputime;
[~,C] = kmeans(meas, 3, 'options',statset('MaxIter', 1),'Start',C, 'Display', 'off');
elapsedCPUTime=cputime-t;
results=[results;elapsedCPUTime];
end
This is the results I got for 15 iterations: 0, 0, 0.046875, 0, 0, 0, 0, 0, 0.03125, 0, 0, 0, 0, 0 ,0.03125. My first thought is that the computational time was too quick, hence 0 second. Is it true? If so, how can we achieve more precise cputime?
Thanks a lot.

Risposte (1)

Walter Roberson
Walter Roberson il 20 Dic 2016
cpu time is difficult to measure, especially in a multi-processor machine that is running multiple programs (your system very likely has daemons or system processes running while you are running MATLAB.)
You should consider using timeit() or tic() and toc()

Community Treasure Hunt

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

Start Hunting!

Translated by