MATLAB计时函数小总结

[复制链接]
1275|0
 楼主| cooldog123pp 发表于 2020-8-29 20:31 | 显示全部楼层 |阅读模式
很多时候我们需要知道程序或部分代码运行时间,现简单总结如下,如有错误或不足之处还望坛友加以指正和补充
一、tic/toc组合,个人经常使用这个,既可以计算整体,也可以计算部分代码的运行时间
使用格式
  1. tic
  2.   %程序段
  3. toc

  1. tStart = tic;           % pair 2: tic
  2. n = 10;
  3. T = zeros(1,n);
  4. for i = 1:n
  5.     A = rand(12000,4400);
  6.     B = rand(12000,4400);
  7.     tic         % pair 1: tic
  8.     C = A.*B;
  9.     T(i)= toc;  % pair 1: toc
  10. end
  11. tMul = sum(T)
  12. tEnd = toc(tStart)      % pair 2: toc
可得
tMul =
    0.7418
tEnd =
    8.7086
二、etime/clock组合
使用格式
  1. t1=clock
  2. %程序段
  3. t2=clock
  4. t=etime(t2,t1)

  1. t1=clock;
  2. n = 10;
  3. T = zeros(1,n);
  4. for i = 1:n
  5.     A = rand(12000,4400);
  6.     B = rand(12000,4400);   
  7.     C = A.*B;   
  8. end
  9. t2=clock;
  10. t=etime(t2,t1)
可得
t =
    8.7320
三、cputime函数
使用格式
  1. t = cputime;
  2. %程序段
  3. e = cputime-t

  1. t = cputime;
  2. n = 10;
  3. T = zeros(1,n);
  4. for i = 1:n
  5.     A = rand(12000,4400);
  6.     B = rand(12000,4400);   
  7.     C = A.*B;   
  8. end
  9. e = cputime-t
可得e =
   18.7969
值得注意的是cputime测试的并非代码实际执行时间,而是CPU实际运行的时间。具体请看https://www.ilovematlab.cn/thread-237411-1-1.html
四、timeit函数,用来测量运行函数的时间
使用格式
  1. t = timeit(f)%f为函数句柄

  1. f = @date;
  2. t = timeit(f)
可得
t =
   1.8348e-05

您需要登录后才可以回帖 登录 | 注册

本版积分规则

2345

主题

7742

帖子

31

粉丝
快速回复 在线客服 返回列表 返回顶部