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. 3 つの警告を無効にし、すべての警告をクエリします。

    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. 3 つの警告を元の状態に戻し、すべての警告をクエリします。

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

    配列に前の警告の状態についての情報を格納する必要はありませんが、格納すると 1 つのコマンドで警告を復元できます。

メモ

複数の警告を一時的に無効にする場合、onCleanup に関連するメソッドを使用すると便利です。

すべての警告を保存して復元することもできます。

  1. すべての警告を有効にし、元の警告の状態を保存します。

    orig_state = warning('on','all');
  2. 警告を前の状態に戻します。

    warning(orig_state)

参考

|

関連するトピック