【问题标题】:Save Matlab command line script errors to a log将 Matlab 命令行脚本错误保存到日志
【发布时间】:2017-01-09 14:14:59
【问题描述】:

我在服务器集群上使用 Matlab,因此我没有显示并通过命令行使用它。运行脚本可以正常工作

matlab -nodesktop -nosplash my_script

为了在执行my_script后将输出保存到日志并退出Matlab,我将命令修改如下:

matlab -nodesktop -nosplash -r "try, my_script; end, quit force" | tee simple.log

但是,在Matlab桌面版中显示的错误信息不显示在日志中,这使得调试非常困难。

有没有办法将 matlabs 输出带有错误消息存储在日志中?

【问题讨论】:

    标签: matlab shell command-line extract-error-message


    【解决方案1】:

    假设您在 Linux 上运行,请参阅这些 command line arguments。要将 matlab 的输出保存到文件中,您可以调用

    matlab -nosplash -nodesktop -logfile my.log -r "try; ...; catch e;.. " 
    

    来自documentation

    -日志文件文件名

    将命令行窗口输出(包括错误报告)复制到文件名中,指定为字符串。

    【讨论】:

      【解决方案2】:

      Q&A here 让我找到了一个解决方案(为了便于阅读,分两行):

      matlab -nosplash -nodesktop -r 
          "try, my_script; catch e, disp(getReport(e)), end, quit force" | tee my_.log
      

      我忘记了一个简单的事情是try 吞下了异常的错误。 catch e, disp(getReport(e)) 照常显示错误消息,即使带有行号。 tee simple.log

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-09
        • 2013-03-12
        • 2019-05-07
        • 1970-01-01
        • 1970-01-01
        • 2021-12-03
        • 2016-12-07
        • 1970-01-01
        相关资源
        最近更新 更多