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;
)。如何在变量中忽略分配操作来计算时间?
答案 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