私の機能の中には、いくつかの警告をエラーに変換したいものがあります。私はstr2func
がMATLAB:str2func:invalidFunctionName
警告を生成するときにエラーをスローする場合たとえば、私は、次の操作を行います:警告をMATLABのエラーに変換する
invalid_func_id = 'MATLAB:str2func:invalidFunctionName';
%hide warning of interest
warning('off', invalid_func_id);
%this might yield the warning of interest
predicate_func_try = str2func(predicate_func);
[~, warn_id] = lastwarn;
assert(~strcmp(warn_id, invalid_func_id)...
, 'MyFunc:InvalidFunctionName'...
, 'The predicate function %s does not have a valid name'...
, predicate_func...
);
warning on all
私は、コードの特定のブロックが警告の小さなセットを与えることができることを知っている場合、これは正常に動作します。しかし、これは冗長であり、おそらくより大きいコードブロックに拡大されません。これを行うより良い方法はありますか?理想的には、特定の警告をブロック全体のエラーに変える機能が必要です。私は正確に何をしたい行うにはきれいな方法を認識していないよ
warnings2errors('MATLAB:str2func:invalidFunctionName');
predicate_func_try = str2func(predicate_func);
warnings2errors('off');
このスレッドによると - http://www.mathworks.com/matlabcentral/newsreader/view_thread/158768 - あなたの方法は一つだけです。 –