性能评估:如何避免定时将toc分配给变量

时间:2019-03-05 22:19:50

标签: matlab

for i=1:1
    tic; M=R*R; toc;
    elapsed_time = toc;
    fprintf('Function took %8f seconds\n', elapsed_time)
    x = sprintf('%0.8f',t);
    tsum = t+tsum;
end

这是我的代码,输出是;

Elapsed time is 0.000355 seconds.

Function took 0.000483 seconds

第一次(经过的时间)是仅计算M=R*R的时间 时间,但是当我打印出计算出的时间(函数花费的时间)时,时间值在增加,因为它还会计算分配操作(elapsed_time = toc;)。如何在变量中忽略分配操作来计算时间?

1 个答案:

答案 0 :(得分:0)

您两次使用toc,而没有第二次tic。您只需要在第一次时为toc输出分配一个变量。相信我,这个变量赋值完全不需要时间:

for i=1:1

tic; M=R*R; 
elapsed_time = toc;

fprintf('Function took %8f seconds\n', elapsed_time)
x = sprintf('%0.8f',t);


tsum = t+tsum;

end