2016-07-05 110 views
2

我看了一下类似的question,但答案以及内部链接的问题与我确切的问题不匹配。Matlab查找命令窗口输出的位置

假设,我有几个由程序执行的Matlab文件。在执行代码的过程中,我在命令窗口接收到多个输出,我想摆脱它。当然,我可以只用grep全部dispprintf命令,没问题。但是,也有可能,某些计算打印出没有Matlab的东西,给我一个缺少分号的警告。一个例子是

function dummy1 
norm(1) 
end 

这将打印1命令窗口,但Matlab的不给我缺少分号的警告,因为这将是

function dummy2 
1+1 
end 

的情况下,有什么办法检测打印到命令窗口的命令的位置?

+0

这可能是我使用['evalc'](http://ch.mathworks.com/help/matlab/ref/evalc.html)抑制所有输出到命令行的少数情况之一。第一个地方。这样你可以调用你的主函数,比如'evalc('main.m');'。请注意,当使用'evalc'时,'diary','more'和'input'被禁用。这不回答你的问题,但解决你的初始*问题*。 – Matt

回答

0

有没有必要过度复杂它。只需在代码中放置一些断点并逐步浏览,直到找到产生不需要输出的行。然后用;来抑制输出。最佳做法是不要忽略;。如果您想快速显示某些内容,请使用disp之类的命令。此外,您应该习惯于通过适当的记录器记录所有内容,例如, log4j。这使您可以通过简单配置(并且可以通过编程方式更改)对实际记录的内容和地点进行细化控制。如果您已经使用过它,那么您将找到打印哪条日志消息的位置不会有问题,因为您会看到打印它的组件名称。