Matlab中的文本进度条

And*_*eas 8 matlab progress-bar

我有一个Matlab函数,需要一些时间来运行,我想向用户显示正在取得进展.只需disp每5%左右进度就会使屏幕过于混乱,因为以前的文本不会被删除.

怎样才能解决这个问题?命令窗口中还有其他重要信息,因此清除它是不可能的.

Sem*_*ger 14

在命令窗口中显示progess也是可能的(也许更容易).我在http://undocumentedmatlab.com/blog/command-window-text-manipulation/上找到了一个非常简单,快速实施的解决方案.

reverseStr = '';
for idx = 1 : someLargeNumber

   % Do some computation here...

   % Display the progress
   percentDone = 100 * idx / someLargeNumber;
   msg = sprintf('Percent done: %3.1f', percentDone); %Don't forget this semicolon
   fprintf([reverseStr, msg]);
   reverseStr = repmat(sprintf('\b'), 1, length(msg));
end
Run Code Online (Sandbox Code Playgroud)

如果您嵌入此代码,则命令行显示(例如):"完成百分比:27.8",而不是每次迭代都输入换行符!


nrz*_*nrz 8

你可以使用它的waitbar功能.请参阅等待栏上的MATLAB文档.