【问题标题】:Capture all warnings that occur during execution捕获执行期间发生的所有警告
【发布时间】:2016-04-12 10:25:48
【问题描述】:

执行脚本后,我尝试通过

读取警告状态
matlab_warnings = warning;

关键是,并非所有在执行期间发生的警告都在此警告状态内。调用时

warning('on', 'verbose');

我得到了关于如何禁用特定警告的有用提示,但是,我仍然很好奇为什么某些警告不会出现在 warning 中。在我的情况下,我调用 quadprog 并且这个函数(优化工具箱的一部分)抛出了我正在寻找的警告。

【问题讨论】:

  • 另外,lastwarn 实际上包含我正在寻找的警告之一。为什么lastwarnwarning 的最后一个条目不同步?

标签: matlab warnings


【解决方案1】:

warning 不返回代码中出现的警告,而是返回是否应显示警告的设置。 lastwarn 是访问警告的唯一方式,它只允许访问最近的警告。

【讨论】:

    【解决方案2】:

    如果您知道代码的哪些部分可能会生成警告,则可以在每次执行代码后将lastwarn 附加到列表中。代码如下:sn-p。

    warnlist=[];
    while somecondition
        % Code that might generate a warning, eg your 'quadprog' function call.
        warnlist = [warnlist; lastwarn]
        warning('') % Clear the last warning, so you wont get dupes in the list
    end
    

    【讨论】:

      猜你喜欢
      • 2016-07-25
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      • 2015-11-26
      • 2011-01-18
      相关资源
      最近更新 更多