Main Content

恢复警告

MATLAB® 允许您保存 on-off 警告状态,修改警告状态以及恢复初始的警告状态。如果您需要暂时关闭某些警告并在以后恢复初始设置,这很有用。

以下语句将所有警告的当前状态保存在一个名为 orig_state 的结构体数组中:

orig_state = warning;

要在修改任何警告后恢复初始状态,请使用此语法:

warning(orig_state);

您还可以用单个命令来保存当前状态并切换警告。例如,orig_state = warning('off','all'); 语句等同于以下命令:

orig_state = warning;
warning('off','all')

禁用和恢复特定警告

本示例显示如何恢复特定警告的状态。

  1. 查询 Control:parameterNotSymmetric 警告:

     warning('query','Control:parameterNotSymmetric')
    
    The state of warning 'Control:parameterNotSymmetric' is 'on'.

  2. 关闭 Control:parameterNotSymmetric 警告:

    orig_state = warning('off','Control:parameterNotSymmetric')
    
    orig_state = 
    
        identifier: 'Control:parameterNotSymmetric'
             state: 'on'

    orig_state 包含 MATLAB 禁用 Control:parameterNotSymmetric 之前的警告状态。

  3. 查询所有警告状态:

    warning
    The default warning state is 'on'. Warnings not set to the default are
    
    State  Warning Identifier
    
        off  Control:parameterNotSymmetric

    MATLAB 指明 Control:parameterNotSymmetric'off'

  4. 恢复初始状态:

    warning(orig_state)
    warning('query','Control:parameterNotSymmetric')
    The state of warning 'Control:parameterNotSymmetric' is 'on'.

禁用和恢复多个警告

本示例显示如何保存和恢复多个警告状态。

  1. 禁用三个警告,并查询所有警告:

    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
  2. 将这三个警告恢复为到各自的初始状态,并查询所有警告:

    warning(w)
    warning
    All warnings have the state 'on'.

    虽然您不必将有关之前的警告状态的信息存储在数组中,但这样做可让您通过一个命令恢复警告。

注意

当暂时禁用多个警告时,使用与 onCleanup 相关的方法可能更好些。

再者,还可以保存并恢复所有警告。

  1. 启用所有警告,并保存初始警告状态:

    orig_state = warning('on','all');
  2. 将警告恢复到先前的状态:

    warning(orig_state)

另请参阅

|

相关主题