我最近通过使用-nodesktop选项启动matlab来开始使用不带GUI的MATLAB,它的速度要快得多。

但是目前我无法在非GUI模式下调试.m脚本。每次调试时都必须打开默认的Matlab编辑器,有人找到了解决方法吗?
提前致谢

我正在使用Ubuntu Linux,以防万一。

最佳答案

要使用命令行设置断点, dbstop 是工具(加上 dbclear 可以清除断点, dbstatus 可以列出它们)。
dbstop目前有17种不同的形式,它们允许您指定以下各项的各种组合:

  • 停止
  • 的M文件
  • 行号
  • 子功能
  • 以任意表达式为条件。例如,
    dbstop in myFun.m at 224 if ~exist('x','var')
    
  • 任何运行时错误(dbstop if error)
  • 发生特定错误(例如dbstop if error myFun.m:barErrorId)时
  • 任何警告(dbstop if warning)或特定警告
  • 如果遇到NaNInf(dbstop if naninf)

  • 有关详细信息和良好示例,请参见dbstop的文档。

    也习惯 dbcont (或F5),dbstep(或F10),dbquit(Shift + F5),dbstep(也dbstep indbstep out), dbstack (了解您在哪里以及如何到达那里)。 Windows之外的键盘快捷方式可能不同。
    dbupdbdown很少使用,但仍然非常有用,它们允许您切换工作空间上下文(内存堆栈)。

    请参见函数摘要以及MathWorks page on Debugging中的示例列表和操作方法页面。

    与“db”功能相关的是 checkcode ,它将在您甚至运行代码之前检查您的代码是否存在问题。这是在MATLAB编辑器中获得的红色波浪状下划线的很好的替代品。

    一旦掌握了dbstop及其语法,就不再需要在代码中插入 keyboard 了,但这始终是一个选择。

    关于matlab - 如何在没有GUI的情况下调试Matlab代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22853116/

    10-12 16:35