【问题标题】:Displaying information from MATLAB without a line feed显示来自 MATLAB 的信息而无需换行
【发布时间】:2009-06-18 13:23:44
【问题描述】:

有没有什么方法可以在没有结束换行符的情况下从 MATLAB 程序输出/显示信息?

我的 MATLAB 程序时不时地输出一个数字。在输出数字之间,程序做了很多其他的事情。这是一个主要用于指示某种进度的结构,最好不要每次都换行,只是为了让用户更容易阅读。这大约是我正在寻找的:

Current random seed:
4 7 1 1 

如果程序的下一个输出仍然和以前一样,它将在同一行。

我已经阅读了有关 disp、sprintf 和 format 的文档,但没有找到我要查找的内容。这并不意味着它不存在。 ;)

【问题讨论】:

    标签: matlab formatting printf disp


    【解决方案1】:

    fprintf 函数不会添加换行符,除非您明确告诉它。省略 fid 参数以将其打印到命令行窗口。

    fprintf('Doing stuff... ');
    for i = 1:5
        fprintf('%d ', i);
        % do some work on that pass...
    end
    fprintf(' done.\n'); % That \n explicitly adds the linefeed
    

    使用 sprintf 不太好用:它会创建一个没有换行符的字符串,但是如果你使用 disp() 或省略分号,disp 自己的显示逻辑会添加换行符。

    【讨论】:

    • 注意:根据您的平台,您可能需要调用“drawnow;”在 fprintf 之后。
    • 你知道吗,我已经做 disp(sprintf(...)) 多年了,从来不知道你可以只使用 fprintf。
    • 这里也一样 - 一直在使用 disp(srinf())。它让你想知道还有哪些我完全没有注意到的简单事情,这会让生活变得如此轻松。
    猜你喜欢
    • 1970-01-01
    • 2014-11-10
    • 2021-04-06
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多