有没有办法显示Matlab指令的执行进度(甚至粗略估计)?
例如,假设我使用pdist计算距离:
D = pdist(my_matrix,'cosine');
这个计算需要几个小时,Matlab是否提供了定期显示执行进度的方法?
答案 0 :(得分:1)
不是本质上的。您当然可以使用分析器或tic / toc进行事后检查。
如果您要为单个函数做很多事情,可以考虑修改函数并使用新名称将其保存在路径中(我有一个名为“Modified Builtin”的目录)。对于pdist.m
,您可以保存pdist_updates.m
。查看该函数,实际距离是从第250行开始计算的,带有一系列嵌套循环。添加如下行:
disp(sprintf('Processing pair %d of %d',i,n-1));
在第265行。如果你真的想得到想象,可以使用tic
和toc
来计算每个循环的时间,并估算整个计算需要多长时间,这样你就会知道如何很久你必须跑到咖啡机上。
当然,如果您最终取消Statistics Toolbox许可证,或者Mathworks升级工具箱并更改功能,这将导致问题,因此请谨慎使用此方法。