【问题标题】:Suppress Output抑制输出
【发布时间】:2016-03-07 13:18:29
【问题描述】:

我想在一组 Matlab 函数中抑制变量的输出。问题是作者忘记了“;”在代码中的许多位置。出于调试目的,此输出很有用,但现在我想抑制它,而不是在整个代码中搜索丢失的“;”。有没有可能关闭这种输出?

【问题讨论】:

标签: matlab


【解决方案1】:

您可以使用 evalc 抑制输出,但这需要您将表达式作为字符串传递。例如,如果您使用的是:

[A,B,C] = notMyFunction(d,e,f);

你可以改用

[T,A,B,C] = evalc('notMyFunction(d,e,f);');

任何本来会发送到控制台的输出现在都将被缓冲并存储在T中。

【讨论】:

    【解决方案2】:

    最后用分号调用这些函数怎么样?所以不要打电话

    my_function()
    

    只需输入

    my_function();
    

    编辑:http://www.mathworks.de/help/techdoc/ref/evalc.htmlevalc('my_function()'); Edit2:太晚了

    【讨论】:

    • 这是错误的。添加分号可防止打印返回值。它不会改变函数的行为。
    【解决方案3】:

    抱歉,当您未能添加分号时,没有简单的方法可以关闭命令窗口的显示。只需自己添加分号。

    是的,您可以使 disp 和 display 过载,从而阻止它们按应有的方式工作,但是在正常情况下它们也将无法工作。你会破坏 matlab 的一个有价值的部分。

    很抱歉,但是在函数调用的末尾添加分号对内部行是否没有分号没有影响。那些内部未终止的行仍会将其结果转储到命令窗口。

    【讨论】:

      【解决方案4】:

      调用函数时,需要在最后加上符号“;”,否则无论是用户函数还是matlab预定义函数都会显示输出。

      【讨论】:

      • 问题不是要抑制函数调用的返回值的输出。问题是抑制所有可能错过 ; 的嵌套函数调用的输出。标志。因此evalc 就是答案。
      猜你喜欢
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 2012-03-09
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多