【问题标题】:suppressing printing every assignment禁止打印每个作业
【发布时间】:2015-11-12 22:32:08
【问题描述】:

我用 Octave 编写了一个简单的脚本。当我从命令行运行它时,每次为变量分配新值时,Octave 都会打印一行。我该如何抑制它?

MWE:

function result = stuff()
    result = 0
    for i=0:10,
        j += i
    end
end

当我运行它时:

octave:17> stuff()
result = 0
result = 0
result =  1
result =  3
result =  6
result =  10
result =  15
result =  21
result =  28
result =  36
result =  45
result =  55
ans =  55
octave:18> 

我想去掉result = ... 行。 我是 Octave 的新手,所以请原谅我提出这样一个基本问题。

【问题讨论】:

  • 如前所述,以; 结尾的行将抑制到终端的输出。您也不需要, 在for 行之后。最后,虽然j += i; 是有效的 Octave,但它不是有效的 Matlab。我建议您将其更改为j = j + i,这样如果您的代码需要移植到 Matlab,您就不必进行任何更改。

标签: octave


【解决方案1】:

就像在 matlab 中一样,只需添加一个 ; (分号)到您不想输出到终端的行尾。

【讨论】:

    【解决方案2】:

    通过在语句末尾添加分号,它将抑制中间结果。

    在你的情况下:

    function result = stuff()
        result = 0;
        for i=0:10,
            j += i;
        end
    end
    

    会成功的。

    【讨论】:

      猜你喜欢
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-02
      • 2021-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多