所有Matlab警告都有消息ID。可以使用内置的lastwarn方法找到它,例如:
>> A=zeros(6,6); inv(A); [~,msgID] = lastwarn
Warning: Matrix is singular to working precision.
msgID =
'MATLAB:singularMatrix'
但是,仅当特定警告可用时,此方法才有效。 如果模拟产生许多不同的警告,我如何获得它们的消息ID?进行仿真并暂停使用lastwarn似乎并不方便。是否可以配置内置警告方法以打印出消息ID?
答案 0 :(得分:2)
warning
函数具有一些可以使用的有用标志。出于您的目的,在代码顶部或控制台中的某个位置,键入:
warning ON VERBOSE
或等价物:
warning('on','verbose')
根据说明文件:
“警告详细信息”和“警告详细信息”控制显示 在以下情况下,额外的一行有用的文本包含警告标识符: 显示警告。
设置此标志后,您将获得每个警告的消息ID(无需调用lastwarn
):
>> A=zeros(6,6); inv(A);
Warning: Matrix is singular to working precision.
(Type "warning off MATLAB:singularMatrix" to suppress this warning.)