在 Matlab 编程中,for 循环是遍历数组时常用的语句。当数组很大时,for 循环的执行时间可能相当长,我们通常希望知道已经执行了多少比例。为此,我写了下面这段代码来实现这个功能。

输出示例

Display for-loop percentage in Matlab console

代码片段

N = 10000;

percents = '';
for i=1:N
    if (mod(i-[1,0],(N*0.01))*[1;-1]) > 0
        fprintf(repmat('\b', 1, numel(percents)));
        percents = sprintf('Percentage: %.0f%%',i/N*100);
        fprintf('%s',percents);
    end
    % other user codes ...
    pause(0.001)
    % other user codes ...
end
fprintf('\n');

说明

上面的代码提供了基本的实现思路,你可能需要对它进行调整,才能用到自己的项目里。

下面的代码用于判断是否跨过了数组长度的百分之一区间:计数值 i 每超过一个百分之一区间,if 条件就满足一次。

if (mod(i-[1,0],(N*0.01))*[1;-1]) > 0

然后,用 '\b' 字符清除上一次 fprintf 的输出,使百分比信息保持在同一个显示位置。


0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注