在我的一些函數中,我想將一些警告轉換爲錯誤。例如,如果我想在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