【问题标题】:Output Text to Octave Console将文本输出到 Octave 控制台
【发布时间】:2013-02-22 09:02:16
【问题描述】:

假设我有一个变量A=5,我想输出它,但在它的前后添加了一些文本。像这样的东西:"There are 5 horses."(注意5 应该是可变变量A

如果我写:disp("There are "),disp(A),disp(" horses.") 我得到:

There are 
5
 horses.

但我希望所有内容都集中在一行中。

我该怎么做?

【问题讨论】:

    标签: console line octave output


    【解决方案1】:

    你可以使用:

    A = 5
    printf("There are %d horses\n", A)
    

    输出:

    There are 5 horses
    

    甚至

    disp(["There are ", num2str(A), " horses"])
    

    甚至

    disp(strcat("There are ", num2str(A), " horses"))
    

    但您必须添加一些内容,因为 octave/matlab 不允许在字符串末尾放置空格,因此输出为:

    ans = There are5 horses
    

    【讨论】:

    • 您的示例都不会实际显示,它们都会生成一个字符串,该字符串仅作为未分配到任何地方的副作用而打印。这就是为什么您还打印了ans =。唯一正确的答案是使用printf(我编辑了你的答案),或者在你的其他示例周围使用显示)(你应该为那些编辑你的答案)。
    • @ThiS 如何使用相同的 disp() 调用来显示字符串和矩阵,例如disp("矩阵为-", M);其中 M 是一个矩阵。
    【解决方案2】:

    根据official documentation

    请注意,disp 的输出始终以换行符结尾。

    所以为了避免换行,你应该使用替代方法来输出每个字符串的数据,或者先连接一个字符串,然后disp它。

    这是listed options

    【讨论】:

      猜你喜欢
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 2011-07-21
      相关资源
      最近更新 更多