我的代码目前正在使用parfor
机制运行。但是,如果我想使用tic/toc
计算每次迭代的运行时间,MATLAB将使用undefined function error
进行响应。有没有解决这个问题的方法?谢谢!
答案 0 :(得分:6)
tic
范例中不存在{p> toc
和parfor
,因为tic
和toc
是单个线程上的计时。因为你并行运行,所以会有线程/上下文切换,因此激活parfor
时产生的每个线程的时间将非常不准确......这就是为什么这些命令自然不受支持的原因。但是,您可以将tic
和toc
命令放在parfor
循环的之外,并且您将能够计算整个{{1}的时长身体执行,但我认为这不是你想要的。
相反,你需要做更多的工作。这不是描述你需要做的工作,而是由其他人完成的。您应该在MathWorks文件交换中查看此工具,该工具允许在parfor
循环中进行计时:http://www.mathworks.com/matlabcentral/fileexchange/27472-partictoc/content/Par.m
有关如何使用此工具的示例,请访问:http://www.mathworks.com/matlabcentral/fileexchange/27472-partictoc/content/html/Example_Script.html
祝你好运!