隐蔽警告
您的程序发出的警告并非总是对执行产生不利影响。为避免混淆,您可以在执行期间将警告消息的状态从 'on'
更改为 'off'
来隐蔽这些消息。
要隐蔽特定的警告消息,必须首先查找警告标识符。每条警告消息都有一个唯一标识符。要查找与 MATLAB® 警告关联的标识符,请重现该警告。例如,以下代码会重现 MATLAB 在尝试删除不存在的文件夹时引发的警告:
rmpath('folderthatisnotonpath')
Warning: "folderthatisnotonpath" not found in path.
注意
如果此语句不生成警告消息,请使用以下代码暂时显示所有警告,然后恢复初始的警告状态:
w = warning ('on','all'); rmpath('folderthatisnotonpath') warning(w)
要获取有关最近引发的警告的信息,请使用 warning
或 lastwarn
函数。此代码使用 query
状态返回一个数据结构体,其中包含标识符和最近引发的警告当前所处的状态:
w = warning('query','last')
w = identifier: 'MATLAB:rmpath:DirNotFound' state: 'on'
id
中:id = w.identifier;
注意
warning('query','last')
返回最近显示的警告。MATLAB 仅显示具有 state: 'on'
和警告标识符的警告消息。
使用 lastwarn
函数,您可以检索最近的警告消息,而不管其显示状态如何:
lastwarn
ans = "folderthatisnotonpath" not found in path.
开启和关闭警告
从 query
状态获取标识符后,使用此信息禁用或启用与该标识符关联的警告。
继续上一部分中的示例,关闭 'MATLAB:rmpath:DirNotFound'
警告,并重复操作。
warning('off',id) rmpath('folderthatisnotonpath')
MATLAB 不显示警告。
开启警告,并尝试删除不存在的路径:
warning('on',id) rmpath('folderthatisnotonpath')
Warning: "folderthatisnotonpath" not found in path.
MATLAB 此时将引发警告。
提示
使用 warning('off','last')
关闭最近生成的警告。
控制所有警告
所有一词仅指那些在您的当前 MATLAB 会话中已引发或修改的警告。已修改的警告状态仅在整个当前会话中保留。开始新会话将会恢复默认设置。
使用标识符 'all'
表示包含所有警告的组。使用以下任一语法查看所有警告的状态:
warning('query','all')
warning
要启用所有警告并验证状态,请执行以下操作:
warning('on','all') warning('query','all')
All warnings have the state 'on'.
要禁用所有警告并验证状态,请使用此语法:
warning('off','all') warning
All warnings have the state 'off'.