我的情况很简单,其中matlab执行时间取决于我运行代码的方式:
tic
pause(1)
toc
如果我按 ctrl enter 在脚本上,我会得到类似的东西:
Elapsed time is 1.000241 seconds.
如果我选择代码并按 f9 ,我会得到类似的东西:
Elapsed time is 1.025203 seconds
我注意到25毫秒的时间差,可再现。
如果您在MATLAB"命令窗口"中复制并经过代码,您会看到很大的差异将运行代码作为M文件进行比较。
在我的计算机上(英特尔i7,16GB RAM(,我的结果是/- 5ms。
Elapsed time is 1.002843 seconds.
Elapsed time is 1.008236 seconds.
Elapsed time is 1.003001 seconds.
但是,当我在m文件中运行代码时,我会得到非常准确的结果。/- 0.01ms
Elapsed time is 1.000032 seconds.
Elapsed time is 1.000041 seconds.
Elapsed time is 1.000021 seconds.
,可能的原因是:如果将代码作为m文件运行,MATLAB尝试提前将代码置于代码,并且您的代码将更快地运行,并且每个线路都没有中间解析阶段。
i 可疑这是由于当您选择 ctrl 输入时运行的代码的sections
已经存储在内存中,因此它们"准备运行",而当您按 f9 时,MATLAB必须在按 f9 之后读取从编辑器中选择的内容。。