图片缩略图

为Parfor Waitbar

version 1.0.0 (2.53 KB) by Yun聚氨酯
等待条或等待消息parfor或for循环。
4.3
4个等级

24下载

更新2019年3月31日

查看许可协议

这个脚本生成一个等待条或等待消息,包括(1)完成百分比;(二)使用时间;(3) parfor或其他类型循环的估计剩余时间。该脚本使用“parallel.pool.”DataQueue”,用于从工作人员收集信息。

的例子。M提供了一个例子。基本上,我们需要在循环之前构造对象,在循环中向对象发送消息,并在循环之后销毁对象。

%的例子:
N = 100000;
WaitMessage = parfor_wait(N, 'Waitbar', true);
parfor i = 1: N
WaitMessage.Send;
暂停(0.002);
结束
WaitMessage。摧毁

引用作为

Yun Pu(2021)。为Parfor Waitbar(//www.tatmou.com/matlabcentral/fileexchange/71083-waitbar-for-parfor), MATLAB中央文件交换。检索

意见及评分(4

Xingwang勇

出色的工作!非常感谢。

亚历克斯Ogren

太棒了!我给出4而不是5的唯一原因是我发现在我的申请中使用的估计剩余时间不是很准确。

鑫刘

你好,Yun Pu,这是一个很好的函数,但是在parfor循环期间,当我喜欢等待栏的“取消”按钮时,它会显示警告。
更多细节,MATLAB显示:
"警告: 第二个参数必须为消息字符向量或现有进度条的句柄。 "
你知道怎么修吗?
谢谢你真诚!

艾蒂安Vaccaro-Grange

Yun Pu干得好,我对它做了一点修改,以HH小时MM分钟SS秒的格式显示时间:

在代码中,输入:
抽搐;
WaitMessage = parfor_wait(“Waitbar”,的确,ReportInterval, 1);
parfor i = 1: N
...
WaitMessage.Send;
结束

在函数中,替换以下行:
53行:Obj。WaitbarHandle = waitbar(0,[num2str(0), '% Please wait'], 'Resize', true','Units', '厘米','Position', [4,3,9.68,2.8]);
90行:waitbar (Obj.NumMessage / Obj。TotalMessage Obj。WaitbarHandle,{:完成,num2str (Obj.NumMessage / Obj.TotalMessage * 100, ' % .2f '), '% '],[' 在“num2str(地板(UsedTime_now / 3600),“% .2f”),“小时”,num2str(地板(rem (UsedTime_now, 3600) / 60),“% .2f”),“敏和“,num2str (60 * ((rem (UsedTime_now, 3600) / 60)地板(rem (UsedTime_now, 3600) / 60)),“% .2f”),“交会”],['估计所需的时间:', num2str(floor(estimatedtimenneeded,3600)/60), '%.2f'), num2str(floor(rem(estimatedtimenneeded,3600)/60)-floor(rem(estimatedtimenneeded,3600)/60), '%.2f'), ' sec']});

MATLAB版本兼容性
创建R2019a
兼容R2017a到R2019a
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!