MATLAB中的几个时间计数器

SIM*_*MEL 21 matlab

我有一个运行循环的程序我希望有两个时间计数器,一个用于循环,它将告诉我循环的一次迭代是如何进行的,一个是整个程序.据我所知tic,toc只会工作一次.

sna*_*ile 33

你只熟悉这个tic toc语法:

tic; someCode; elapsed = toc;
Run Code Online (Sandbox Code Playgroud)

但还有另一种语法:

start = tic; someCode; elapsed = toc(start);
Run Code Online (Sandbox Code Playgroud)

第二种语法进行相同的时间测量,但允许您同时运行多个秒表计时器.您将tic的输出分配给变量tStart,然后在调用toc时使用该变量.MATLAB测量tic及其相关toc命令之间经过的时间,并以秒为单位显示经过的时间.此语法使您可以计时多个并发操作,包括嵌套操作的时间(tic toc的matlab文档).

以下是如何在您的情况下使用它.让我们说这是你的代码:

for i = 1:M
   someCode;
end
Run Code Online (Sandbox Code Playgroud)

像这样插入tic和toc:

startLoop = tic;
for i = 1:N
   startIteration = tic;
   someCode;
   endIteration = toc(startIteration);
end
endLoop = toc(startLoop);
Run Code Online (Sandbox Code Playgroud)

您还可以使用上面的语法创建一个向量,其中第i个元素是第i次迭代的时间度量.像这样:

startLoop = tic;
for i = 1:N
   startIteration(i) = tic;
   someCode;
   endIteration(i) = toc(startIteration(i));
end
endLoop = toc(startLoop);
Run Code Online (Sandbox Code Playgroud)