【问题标题】:Matlab find position of Command Window outputMatlab找到命令窗口输出的位置
【发布时间】:2016-07-05 08:34:44
【问题描述】:

我查看了类似的question ,但答案以及其中的链接问题与我的确切问题不符。

假设我有几个由程序执行的 Matlab 文件。在代码执行期间,我在命令窗口中收到多个输出,我想摆脱这些输出。当然,我可以只使用grep 所有dispprintf 命令,没问题。然而,也有可能,某些计算在没有 Matlab 的情况下打印一些东西,因为缺少分号而给我一个警告。一个例子是

function dummy1
norm(1)
end

这会将1 打印到命令窗口,但Matlab 没有给我一个缺少分号的警告,因为它会是这种情况

function dummy2
1+1
end

有没有办法检测打印到命令窗口的命令的位置?

【问题讨论】:

  • 这可能是我首先使用evalc 来抑制所有输出到命令行的少数情况之一。这样你就可以调用你的主函数,比如evalc('main.m');。请注意,diarymoreinput 在使用 evalc 时被禁用。这并不能回答您的问题,但可以解决您最初的问题

标签: matlab


【解决方案1】:

没有必要过度复杂化。只需在您的代码中放置一些断点并单步执行,直到找到那些产生不需要的输出的行。然后使用; 抑制输出。最佳做法是永远不要省略 ;。如果您想快速显示某些内容,请改用disp 之类的命令。

此外,您应该习惯于通过适当的记录器记录所有内容,例如log4j。这使您可以通过简单的配置(也可以通过编程方式更改)对实际记录的内容和位置进行细粒度控制。如果您使用过它,那么找出在哪里打印了哪条日志消息对您来说不是问题,因为您会看到打印它的组件名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    相关资源
    最近更新 更多