在我的一些函数中,我想将一些警告转换为错误。例如,如果我想在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 - 你的方式是唯一的一个。 – 2012-02-24 14:04:03