恢复警告
MATLAB® 允许您保存 on-off
警告状态,修改警告状态以及恢复初始的警告状态。如果您需要暂时关闭某些警告并在以后恢复初始设置,这很有用。
以下语句将所有警告的当前状态保存在一个名为 orig_state
的结构体数组中:
orig_state = warning;
要在修改任何警告后恢复初始状态,请使用此语法:
warning(orig_state);
您还可以用单个命令来保存当前状态并切换警告。例如,orig_state = warning('off','all');
语句等同于以下命令:
orig_state = warning; warning('off','all')
禁用和恢复特定警告
本示例显示如何恢复特定警告的状态。
查询
Control:parameterNotSymmetric
警告:warning('query','Control:parameterNotSymmetric')
The state of warning 'Control:parameterNotSymmetric' is 'on'.
关闭
Control:parameterNotSymmetric
警告:orig_state = warning('off','Control:parameterNotSymmetric')
orig_state = identifier: 'Control:parameterNotSymmetric' state: 'on'
orig_state
包含 MATLAB 禁用Control:parameterNotSymmetric
之前的警告状态。查询所有警告状态:
warning
The default warning state is 'on'. Warnings not set to the default are State Warning Identifier off Control:parameterNotSymmetric
MATLAB 指明
Control:parameterNotSymmetric
为'off'
。恢复初始状态:
warning(orig_state) warning('query','Control:parameterNotSymmetric')
The state of warning 'Control:parameterNotSymmetric' is 'on'.
禁用和恢复多个警告
本示例显示如何保存和恢复多个警告状态。
禁用三个警告,并查询所有警告:
w(1) = warning('off','MATLAB:rmpath:DirNotFound'); w(2) = warning('off','MATLAB:singularMatrix'); w(3) = warning('off','Control:parameterNotSymmetric'); warning
The default warning state is 'on'. Warnings not set to the default are State Warning Identifier off Control:parameterNotSymmetric off MATLAB:rmpath:DirNotFound off MATLAB:singularMatrix
将这三个警告恢复为到各自的初始状态,并查询所有警告:
warning(w) warning
All warnings have the state 'on'.
虽然您不必将有关之前的警告状态的信息存储在数组中,但这样做可让您通过一个命令恢复警告。
注意
当暂时禁用多个警告时,使用与 onCleanup
相关的方法可能更好些。
再者,还可以保存并恢复所有警告。
启用所有警告,并保存初始警告状态:
orig_state = warning('on','all');
将警告恢复到先前的状态:
warning(orig_state)