Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找Matlab警告消息ID的最简单方法是什么?_Matlab - Fatal编程技术网

查找Matlab警告消息ID的最简单方法是什么?

查找Matlab警告消息ID的最简单方法是什么?,matlab,Matlab,所有Matlab警告都有消息ID。可以使用内置的lastwarn方法找到它,例如: >> A=zeros(6,6); inv(A); [~,msgID] = lastwarn Warning: Matrix is singular to working precision. msgID = 'MATLAB:singularMatrix' 但这只有在手头有具体警告时才起作用。 如果模拟产生许多不同的警告,如何获取它们的消息ID?通过模拟并暂停它以使用lastwarn似乎并不

所有Matlab警告都有消息ID。可以使用内置的lastwarn方法找到它,例如:

>> A=zeros(6,6); inv(A); [~,msgID] = lastwarn

Warning: Matrix is singular to working precision. 

 msgID =

'MATLAB:singularMatrix'
但这只有在手头有具体警告时才起作用。 如果模拟产生许多不同的警告,如何获取它们的消息ID?通过模拟并暂停它以使用lastwarn似乎并不方便。是否可以配置内置警告方法以打印消息ID?

该函数有几个有用的标志,可以使用。出于您的目的,请在代码顶部或控制台中键入:

warning ON VERBOSE
或同等标准:

warning('on','verbose')
根据文件规定:

VERBOSE上的WARNING和VERBOSE下的WARNING控制 当发生错误时,包含警告标识符的额外有用文本行 将显示警告


设置此标志后,您将获得每个警告的消息ID(无需调用
lastwarn
):


不是很快,但是通过查看抛出警告的函数,可以在代码中引发警告的位置找到警告ID(通常输入警告在开头,输出警告在结尾),您是对的。我试了好几次,但没有显示额外的行。现在,在重新启动Matlab之后,它就可以了。看来我把我的Matlab设置搞砸了。
>> A=zeros(6,6); inv(A);
Warning: Matrix is singular to working precision.
(Type "warning off MATLAB:singularMatrix" to suppress this warning.)