抑制输出

22

我想要抑制一组 Matlab 函数中变量的输出。问题是,作者在代码中很多地方忘记了使用 ";"。虽然为调试目的而有用,但现在我想要抑制它,而不必在整个代码中查找缺少 ";" 的位置。是否有可能关闭这种类型的输出?


3
可能是这个的重复问题: https://dev59.com/LnA75IYBdhLWcg3w7tx6 答案是: "你可以尝试将函数调用包装在 evalc 中。" - david.s
4个回答

31
您可以使用evalc来抑制输出,但这需要您将表达式作为字符串传入。例如,如果您正在使用:
[A,B,C] = notMyFunction(d,e,f);

您可以使用“相反”的代替方式。
[T,A,B,C] = evalc('notMyFunction(d,e,f);');

现在所有本应输出到控制台的内容将被缓冲并存储在T中。


1

这是错误的。 添加分号会阻止打印返回值,但不会改变函数的行为。 - Ronenz

1

抱歉,如果您未能添加分号,就没有简单的方法可以关闭命令窗口的显示。请自行添加分号。

是的,您可以重载disp和display函数,防止它们按照预期工作,但这样它们在正常情况下也无法工作。您将破坏Matlab的一个有价值的部分。

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


-2
在调用函数时,需要在末尾添加一个分号“;”,否则输出将被显示,无论是用户定义的函数还是Matlab预定义的函数。

问题不是抑制函数调用的返回值输出。问题是抑制可能缺少分号的所有嵌套函数调用的输出。因此,evalc 就是答案。 - M.K. aka Grisu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接