【MATLAB】警告の有無で処理を分岐させたい場合


Matlabの実行時に警告が出た際に別の処理をしたいと思ったが、
普通の例外処理(try、catch)はエラーのみにしか使えない。

例えば、addpathコマンドを使用して検索フォルダに任意の
パスを追加する場合、記載したパスがそもそも存在しなかった
ケースを検知して別の処理に移行したい。

そこで、警告が出たことを別の方法で検知しようと考えた。

[方法]

latwarn(最後に出た警告内容)を利用

[詳細]


clear all; % ワークスペースからアイテムを削除

lastwarn(''); % 最後に出た警告の内容をリセット

crnt = pwd; % カレントフォルダを格納

% 以下フォルダを検索対象に追加
addpath(strcat(crnt, 'folder_A'));
addpath(strcat(crnt, 'folder_B'));
addpath(strcat(crnt, 'folder_C'));

[msg, msgID] = lastwarn; % 最後に出た警告の内容を格納

if strcmp(msgID, 'MATLAB:dispatcher:pathWarning')

  % 警告が出た時に実施したい処理を記述

else

  % 警告が出なかった時に実施したい処理を記述

end