我有一个运行循环的程序我希望有两个时间计数器,一个用于循环,它将告诉我循环的一次迭代是如何进行的,一个是整个程序.据我所知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)