文档

侍应还是等待

打开或更新等待栏对话框

句法

h = waitbar(x,'消息')
waitbar(x,'message','createCancelBtn','button_callback')
waitbar(x,'message',property_name,property_value,...)
侍应布(x)
侍应布(x,h)
waitbar(x,h,“更新消息”)

描述

等待栏是一个数字,该数字显示计算完成的百分比是通过从左到右逐渐填充棒来填充棒来进行的。

h = waitbar(x,'消息')显示分数长度的等待栏X。等待栏的图显示,直到控制其关闭的代码或用户单击其关闭窗口按钮。它的(图)手柄返回H。论点X必须介于两者之间01

笔记

等待条不是模态人物(它们的窗框'普通的')。它们通常似乎是模态,因为它们称为在其中的计算循环防止与命令窗口交互,直到它们终止为止。有关更多信息,请参阅窗框图属性

waitbar(x,'message','createCancelBtn','button_callback')指定CreateCancelBtn添加取消按钮执行MATLAB的图®指定的命令button_callback当用户单击取消按钮或关闭图按钮。侍应还是等待设置两个取消按钮回调和图形closerequestfcn到指定的命令button_callback

waitbar(x,'message',property_name,property_value,...)可选论点property_name适当的价值使您设置图属性为了侍应还是等待

侍应布(x)随后的电话侍应布(x)将条的长度延长到新位置X。连续的值X通常增加。如果它们减少,等待栏将反向运行。

侍应布(x,h)在等待栏中延长杠铃的长度H到新职位X

waitbar(x,h,“更新消息”)更新消息文本侍应还是等待图,除了将分数长度设置为X

例子

示例1-基本等待栏

通常,你打电话侍应还是等待反复在a内为了执行冗长计算的循环。例如:

h = waitbar(0,'请等待...');步骤= 1000;对于步骤= 1:步骤%计算在此处进行waitbar(步骤 /步骤)结束(h)

示例2 - 带有动态文本和取消按钮的等待栏

添加一个取消按钮允许用户中止计算。单击它在图的应用程序数据(AppData)中设置逻辑标志。设置标志后,在主循环内对该值进行测试,并立即退出循环。该示例在迭代上近似pi。在每个步骤中,当前值在Wait Bar的消息字段中显示为文本。当功能完成时,它会破坏等待栏并返回当前的π估计及其运行的步骤数。

将以下功能复制到代码文件,并将其保存为coutpi.m。按照以下方式执行它,允许它运行10,000次迭代。

[estated_pi步骤] = actpi(10000)
您可以单击取消或关闭窗口以中止计算并返回π的当前估计值。

函数[valueofpi spep] = aidpi(step)%在pi迭代中收敛于pi,并显示等待栏。%用户可以单击取消或关闭按钮退出循环。百分之一的步骤产生的错误约为0.001%。h = waitbar(0,'1','名称','近似pi ...',...'createCancelBtn',...'setappdata(gcbf,''canceling'',1)');setappdata(h,'canceling',0)%近似为pi^2/8 = 1 + 1/9 + 1/25 + 1/49 + ... pisqover8 = 1;denom = 3;valueofpi = sqrt(8 * pisqover8);对于步骤= 1:步骤%检查取消按钮按下如果getAppData(h,'canceling')break end%报告在waitbar的消息字段waitbar(步骤/步骤,h,sprintf('%12.9f',valueofpi)中的当前估算值)%更新估计值pisqover8 = pisqover8 + 1 /(denom * denom);denom = denom + 2;valueofpi = sqrt(8 * pisqover8); end delete(h) % DELETE the waitbar; don't try to CLOSE it.
该功能设置图形姓名属性以描述正在计算的内容。在里面为了循环,打电话侍应还是等待设置分数进度指标并显示中间结果。命令waitbar(i/step,h,sprintf('%12.9f',valueofpi))设置等待吧的信息可变到当前的估计值pi作为文字。涉及的额外计算使迭代持续时间比需要的时间更长,但是这种反馈可能对用户有所帮助。

笔记

你应该打电话删除当您给它一个等待栏closerequestfcn,如前所述;打电话不会关闭它,并使其取消和关闭窗口按钮无响应。这是因为人物的closerequestfcn递归回调自我调用。在这种情况下,您必须强行删除等待栏,例如这样:

set(groot,'showhdidenhandles','on')删除(get(groot,'children'))
但是,由于发行这些命令将删除所有开放数字(不仅仅是等待栏),因此最好永远不要使用在一个closerequestfcn关闭窗口。

在R2006a之前引入

这个话题有帮助吗?