for i=1:1
tic; M=R*R; toc;
elapsed_time = toc;
fprintf('Function took %8f secondsn', 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;
)。如何计算忽略分配操作的变量中的时间?
您使用的是toc
两次,而没有第二个tic
。您只需要第一次为toc
分配一个变量即可。相信我,这个变量分配根本不需要时间:
for i=1:1
tic; M=R*R;
elapsed_time = toc;
fprintf('Function took %8f secondsn', elapsed_time)
x = sprintf('%0.8f',t);
tsum = t+tsum;
end