捕获执行过程中发生的所有警告
Capture all warnings that occur during execution
执行脚本后,我尝试通过
读取警告状态
matlab_warnings = warning;
重点是,并不是所有执行过程中出现的警告都在这个警告状态内。调用时
warning('on', 'verbose');
我得到了有关如何禁用特定警告的有用提示,但是,我仍然很好奇为什么某些警告不会出现在 warning
中。在我的例子中,我正在调用 quadprog
并且这个函数(优化工具箱的一部分)抛出了我正在寻找的警告。
warning
不会 return 您的代码中出现的警告,而是 return 是否应显示警告的设置。 lastwarn
是访问警告的唯一方法,它只允许访问最近的警告。
如果您知道代码的哪些部分可能会生成警告,则可以在每次执行代码后将 lastwarn
附加到列表中。下面的代码片段。
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
执行脚本后,我尝试通过
读取警告状态matlab_warnings = warning;
重点是,并不是所有执行过程中出现的警告都在这个警告状态内。调用时
warning('on', 'verbose');
我得到了有关如何禁用特定警告的有用提示,但是,我仍然很好奇为什么某些警告不会出现在 warning
中。在我的例子中,我正在调用 quadprog
并且这个函数(优化工具箱的一部分)抛出了我正在寻找的警告。
warning
不会 return 您的代码中出现的警告,而是 return 是否应显示警告的设置。 lastwarn
是访问警告的唯一方法,它只允许访问最近的警告。
如果您知道代码的哪些部分可能会生成警告,则可以在每次执行代码后将 lastwarn
附加到列表中。下面的代码片段。
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