如何在MATLAB中轻松打印出每一步的执行时间?

时间:2014-05-22 02:21:44

标签: matlab

我的脚本需要很长时间才能运行。我认为一定有问题。因此,我希望找出哪条线占用了很多时间。我需要打印每行运行多长时间。

我脑海中的一个草率解决方案是使用

封装每一行
tic;
my_line_here;
fprint('line %d ', line_idx);
toc;
line_idx = line_idx+1;

然而,我不愿意像这样实现,因为我很难将每一行包含在一个非常长的脚本中。有没有更聪明的方法来实现同样的目标?

1 个答案:

答案 0 :(得分:1)

正如所提到的评论,探查者可能会做到这一点。你的问题明确表示你想打印/存储每一行​​的运行时间,所以我可以给你一个更好的方法。

timeSet =[0];
initTic = tic;
foo;
timeSet{end+1} = toc(initTic) - timeSet(end);
bar;
timeSet{end+1} = toc(initTic) - timeSet(end);

您还需要在每个要测量的部分之后插入timeSet行,但它只是一条标准行,因此很容易复制粘贴。我试图在你设定的范围内回答这个问题,所以我希望这对某人有用。