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