Main Content

警告の非表示

プログラムで表示する警告の内容は、実行に悪影響を及ぼすことだけではありません。混乱を避けるため、メッセージの状態を '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'.

関連するトピック