cputime with kmeans return 0
Show older comments
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.
Answers (1)
Walter Roberson
on 20 Dec 2016
1 vote
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()
Categories
Find more on k-Means and k-Medoids Clustering in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!