同情况下,我们需要统计matlab中某个算法或者程序段的运行时间,用于分析程序段的复杂性。此时,我们可以使用tic和toc指令来完成,具体实现过程如下:
clc;
clear;
close all;tic;
t=0;
for i= 1:1000t=t+1;
end
times = toc;
times
运行之后,我们可以看到
times =
7.9960e-04
即运行时间为7.9960e-04s
假设将上述程序的循环改为100万次,即:
clc;
clear;
close all;tic;
t=0;
for i= 1:1000000t=t+1;
end
times = toc;
times
运行之后,我们可以看到
times =
0.0025
即运行时间为0.0025s
更进一步,我们可以通过这个方法统计不同循环次数所对应的程序运行时间,编写如下matlab:
clc;
clear;
close all;idx=0;
for j = 10000000:10000000:100000000idx=idx+1;tic;t=0;for i= 1:jt=t+1; endtimes(idx,1) = toc;
end
times
figure;
semilogx([10000000:10000000:100000000],times,'b-o');
xlabel('循环次数');
ylabel('运行时间s');
运行后,可以看到其时间为:
times =
0.0136
0.0175
0.0262
0.0350
0.0438
0.0517
0.0607
0.0694
0.0780
0.0866
即不同循环次数所对应的运行时间,
使用相似的方法,我们可以统计各种不同算法的复杂度。