有一个很大的分数
2小时
并且需要在
结束之前看到还有多少在外循环的屏幕上输出
但值和有很多,例如70 000
问题 - 如何在打印到屏幕时删除换行符
不接收70 000行
并且只能在一行中看到当前显示?
答案 0 :(得分:8)
使用disp
而不是使用fprintf
向屏幕显示文字,而是要求您手动输入换行符。
比较
>> disp('Hello, '), disp('World')
Hello,
World
与
>> fprintf('Hello, '), fprintf('World\n')
Hello, World
\n
末尾的'World\n'
表示换行符(或换行符,因为它们通常被称为)。
答案 1 :(得分:4)
尝试使用此函数,可以使用disp
代替字符串参数。它显示在命令窗口中,并记住它显示的消息。当您下次调用它时,它首先从命令窗口删除先前的输出(使用ASCII退格字符),然后打印新消息。
通过这种方式,您只能看到最后一条消息,并且命令窗口不会显示旧消息。
function teleprompt(s)
%TELEPROMPT prints to the command window, over-writing the last message
%
% TELEPROMPT(S)
% TELEPROMPT() % Terminate
%
% Input S is a string.
persistent lastMsg
if isempty(lastMsg)
lastMsg = '';
end
if nargin == 0
lastMsg = [];
fprintf('\n');
return
end
fprintf(repmat('\b', 1, numel(sprintf(lastMsg))));
fprintf(s);
lastMsg = s;