当在Matlab中运行繁重的代码时,有没有办法确定到目前为止运行了多少代码? (百分之几)
答案 0 :(得分:1)
你应该暂停程序,手动计算还有多少钱,然后决定是等待还是放弃。
https://www.mathworks.com/help/matlab/matlab_prog/debugging-process-and-features.html
暂停正在运行的文件
要在程序运行时暂停执行,请转到“编辑器”选项卡,然后单击“暂停”按钮。 MATLAB暂停下一个可执行行的执行,并且“暂停”按钮变为“继续”按钮。要继续执行,请按继续按钮。
如果要检查长时间运行的程序的进度以确保它按预期运行,则暂停非常有用。
注意:单击暂停按钮可能会导致MATLAB暂停在您自己的程序文件之外的文件中。按“继续”按钮可恢复正常执行,而不会更改文件的结果。
答案 1 :(得分:0)
如果你有一个迭代过程,每次迭代的时间大约是同一时间(并非总是如此,但通常会发生这种情况),那么你可以使用它来知道代码何时结束:
for ii=1:niter
if (ii==1); tic; end
% your iteration
if (ii==1);
expected_time=toc*niter;
disp('Myalgorithm');
disp(['Expected duration : ',secs2hms(expected_time)]);
disp(['Exected finish time: ',datestr(datetime('now')+seconds(expected_time))]);
disp('');
end
end
使用FEX中的sec2hms
。
此代码打印以下内容:
Myalgorithm
Expected duration : 41.0 secs
Exected finish time: 28-Mar-2017 10:58:57