%% Matlab 进度条效果
% 在某些时候我们可能会需要显示当前循环执行的进度。
% iter 当前的迭代次数
% iterMax 设定的最大迭代次数
% note 显示的文字
function ProgressBar(iter, iterMax, note)
persistent lprogress;
progress = floor(iter / iterMax * 30);
% 清除保留的进度
if(progress == 0)
lprogress = 0;
end
% 进度变化的时候更新
if(progress > lprogress)
lprogress = progress;
% 更新进度条
clc;
fprintf('%s\n', note);
fprintf(['进度: ',repmat('█', 1, progress), repmat('□', 1, 30-progress),' %2.1f%%\r'], iter/iterMax * 100);
end
end