matlab程序等待,如何在Matlab中使用waitbar?

运行

counterend = 10000;

>> h = waitbar(0,'Please wait...');

for i=1:counterend

waitbar(i/counterend)

end

close(h);

工程在2007年a/Windows XP作为预期。

在旁注中,它将有助于了解被反作用的定义为。快速检查的一件事就是确保你没有将它传递给CELL。

运行

counterend = {10000};

h = waitbar(0,'Please wait...');

for i=1:counterend

waitbar(i/counterend)

end

close(h);

单产2007年a不同的错误(见下文),但该错误消息可以在2008年

已经改变???未定义的函数或方法 '_colonobj'用于 类型'cell'的输入参数。

我最后一点的建议是警告你使用waitbar的大型数组/数据集。虽然我认为向用户通知进展情况非常重要,但对于我而言,还需要考虑向循环添加多少时间。使用具有100k +条目的数组,我成为Profiler的宗教用户,查看时间真正花在哪里。我可以告诉你,时间不在计算I/X,它是在更新等待栏的显示。为了减轻更新/汲取的冲击,我每隔100到1000条就更新一次waitbar,这对帮助非常大。

编辑:更新响应,以配合最新的代码

我第一次开始在匿名函数来攻击该问题,在过去与他们的问题这是我个人的仇杀。当看着这个函数,我发现你正在使用伽玛,你有这个定义为一个常量(循环/函数常量)?我要问的原因是'gamma'是一个Matlab函数,在尝试运行你自己的函数时给了我错误。下面我修改了你的代码,并且在这里运行得很好。如果我提出的任何假设都是错误的,请让我知道。另外,如果你打算使用gamma函数,你的函数会丢失任何参数。希望这可以帮助!

clc

h = waitbar(0,'Please wait...');

counterend = 1000;

waitbarcounter = counterend;

g_amma = 7;

At = 34;

step = 2;

Tc = 42;

for i=1:counterend

waitbar(i/waitbarcounter)

Atemp = At+i*step;

handle = @(M) 1/M^2*((2/(g_amma+1))*(1+(g_amma-1)*M^2/2))^((g_amma+1)/(g_amma-1))-(Atemp/At)^2;

Mach = fzero(handle, 5);

Aplot(i) = Atemp/At;

Tplot(i) = Tc/(1+(g_amma-1)*Mach^2/2);

Mplot(i) = Mach;

plot(Aplot, Tplot)

end

close(h)

问候,

亚当

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值