MATLAB 进度条

 


前言

在通信仿真的时候,很多情况下数据量过大导致运行时间很长。为了方便跟踪进度,我们就需要进度条来将进程可视化。


 

一、基本原理

进度条的使用通常配合程序中的for循环来完成,每次循环中都更改一次进度数值并进行显示。

二、代码范例

代码如下(示例):

h=waitbar(0,'please wait...'); %打开进度条,命名是为了方便关闭
%设置双缓存,为了防止在不断循环画动画的时候会产生闪烁的现象
set(h,'doublebuffer','on');
for i=1:100
    if i>=88
        waitbar(i/100,h,'计算即将完成');  %逐步显示进度条
        pause(0.05);    %实际仿真的时候不必暂停显示
    else
        %更改进度条显示内容
        str=['正在计算中',num2str(i),'%...'];
        waitbar(i/100,h,str);
        pause(0.05);
    end
end
close(h);   %关闭进度条

其中,第三行代码设置双缓存的意义在于减少进度条显示画面闪烁。

因为一般绘制一帧图形的时间比较长,如果直接在“屏幕”上绘制的话,用户就会看到这个绘制的过程,导致闪烁现象。所以很多时候都是在某一块显存区域中先画好,然后直接将这块内存区域的内容搬移到“屏幕”上。内存搬移的速度非常快,所以用户看到的就是一帧中的内容同时显示出来的效果。后者就被称为“双缓冲”技术。


参考

代码主体来自于哈工大“通信系统仿真”课程PPT。

部分代码解释来自于参考链接

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值