matlab GUI中的waitbar

waitbar

作用:

这个函数的作用是打开或者更新进度条。

语法结构有:

(1)h = waitbar(x,'message')

(2)waitbar(x,'message','CreateCancelBtn','button_callback')

(3)waitbar(x,'message',property_name,property_value,...)

(4)waitbar(x)

(5)waitbar(x,h)

(6)waitbar(x,h,'updated message')

应用1:

语法结构h = waitbar(x,'message'); %其中x必须为0到1之间的数,message为显示的信息,其实这个x大于1也可以啊,但是进度条总在满的状态,x是多少就对应进度条显示的比例是多少

举例:hwait=waitbar(0,'请等待>>>>>>>>'); %这个0显示的是进度条的位置,因为是0,就在起始位置,还有就是这个hwait就是这个waitbar函数的句柄

得到:

应用2

waitbar(x,h,'updated message'); % x为显示的进度,必须在0到1之间;h为所建立的waitbar的句柄,updated message为实时显示的信息,常地用于for循环中。

举例:

steps=100;

hwait=waitbar(0,'请等待>>>>>>>>');

for k=1:steps

if steps-k<=5

waitbar(k/steps,hwait,'即将完成');

pause(0.05);

else

str=['正在运行中',num2str(k),'%'];

waitbar(k/steps,hwait,str);

pause(0.05);

end;

end;

close(hwait); %注意必须添加close函数,也就是说运行完成后让此进度条消失。

结果如下所示:

显示正在运行中:

显示即将完成:

应用3:

语法结构waitbar(x,'message','CreateCancelBtn','button_callback');%为的是在进度条上添加取消按钮,用户可以通过进度条来终止程序的运行。

举例:

编写函数如下;

function [valueofpi step] = approxpi(steps)

% Converge on pi in steps iterations, displaying waitbar.

% User can click Cancel or close button to exit the loop.

% Ten thousand steps yields error of about 0.001 percent.

h = waitbar(0,'1','Name','Approximating pi...',...

'CreateCancelBtn',...

'setappdata(gcbf,''canceling'',1)');

setappdata(h,'canceling',0)

% Approximate as pi^2/8 = 1 + 1/9 + 1/25 + 1/49 + ...

pisqover8 = 1;

denom = 3;

valueofpi = sqrt(8 * pisqover8);

for step = 1:steps

% Check for Cancel button press

if getappdata(h,'canceling')

break

end

% Report current estimate in the waitbar's message field

waitbar(step/steps,h,sprintf('.9f',valueofpi))

% Update the estimate

pisqover8 = pisqover8 + 1 / (denom * denom);

denom = denom + 2;

valueofpi = sqrt(8 * pisqover8);

end

delete(h)%删除进度条,不要去使用close函数关闭。

调用函数:

[estimated_pi steps] = approxpi(10000);

运行结果:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,509评论 0 17
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • 奥运如期而至。坦白讲,比起足球,我对大部分奥运项目热情不够,也只是看看新闻,听听身边人神侃。但是,最近好多人说,今...
    萌芽儿MoodYard阅读 391评论 2 6
  • 谈过网络关系,觉得那一瞬间揭开一个人.面具好可怕, 1. 有一次我准备去找她们一个keep的大姐姐加的微信,她把我...
    雅nmmm阅读 479评论 2 1
  • 一切似乎是最好的安排,就如写写团定在了今天这个特别的日子开始。 对于父母健在的我来说,清明节于我没有太多的感伤,一...
    微笑的周周阅读 330评论 0 1