matlab中获取代码执行耗时有四种方法:一、用tic/toc配对计时并显示结果;二、用toc(tstart)返回数值供后续使用;三、用cputime两次采样相减得cpu时间;四、用clock与etime组合获取系统级墙钟时间。

如果您在MATLAB中需要获取某段代码的实际执行耗时,则可能是由于缺乏对计时机制的准确调用。以下是解决此问题的步骤:
一、使用tic和toc函数配对计时
tic函数用于记录起始时间点,toc函数则读取自最近一次tic调用以来所经过的时间(单位为秒),二者必须成对出现且toc默认关联最后一次tic。该方法是MATLAB官方推荐的基础计时方式,适用于大多数脚本与函数内部的粗粒度时间测量。
1、在待测代码段前输入 tic;
2、紧接其后插入需要统计运行时间的全部语句;
3、在代码段末尾输入 toc;
4、运行后命令行将直接显示类似 Elapsed time is 0.0023 seconds. 的输出结果。
二、使用带返回值的toc获取时间数值
当需要将计时结果赋值给变量以供后续逻辑判断或存储时,可让toc接收一个输出参数,避免仅在命令行打印。该方式支持嵌套计时场景,且不依赖屏幕输出。
1、在代码段开始处调用 tStart = tic;;
2、执行目标运算,例如 A = rand(1000); B = inv(A);;
3、在结束位置调用 elapsedTime = toc(tStart);;
4、此时 elapsedTime 即为标量数值,单位为秒,可参与计算或写入文件。
三、采用cputime函数测量CPU占用时间
cputime函数返回自MATLAB启动以来累计消耗的CPU时间(单位为秒),通过两次采样相减可得代码段实际占用处理器资源的时长。该方法不受系统后台任务干扰,适合评估算法计算密集度。
1、在待测代码前执行 cpuStart = cputime;;
2、插入被测代码,如 X = A \ B;;
3、在代码后执行 cpuElapsed = cputime - cpuStart;;
4、cpuElapsed 即为该段代码独占CPU的时间,可能显著小于wall-clock时间。
四、利用clock与etime组合实现系统时钟级计时
clock函数返回当前系统时间的六元向量[年 月 日 时 分 秒],etime计算两个clock向量之间的时间差(单位为秒)。该方法独立于MATLAB内部计时器,适用于跨会话或需与外部系统时间对齐的场景。
1、在代码段起始处输入 t1 = clock;;
2、执行被测操作,例如 for k = 1:1e5, y = sin(k); end;
3、在结尾处输入 t2 = clock;;
4、调用 wallTime = etime(t2, t1); 获取真实流逝时间。










