Matlab - 如何在打印到屏幕时删除换行符?

时间:2013-04-05 07:38:29

标签: matlab

有一个很大的分数

2小时

并且需要在

结束之前看到还有多少

在外循环的屏幕上输出

但值和有很多,例如70 000

问题 - 如何在打印到屏幕时删除换行符

不接收70 000行

并且只能在一行中看到当前显示?

2 个答案:

答案 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;