📄 checkparams.m
字号:
function s = checkparams(s, defaults, required)%Verifies parameter structure and sets defaults for optional parameters% [S] = CHECKPARAMS(S, DEFAULTS, REQUIRED)% Verifies a parameter structure for required fields and sets defaults for% optional fields. Emits an error if any required field is missing.% % Parameters:% S - the parameters structure to check% DEFAULTS - the default values for optional parameters, a structure% with the same field names for parameters as those expected% in S. Can contain nested structures. Can be an empty matrix,% in which case no defaults are installed but the required fields% are verified.% REQUIRED - the names of the required parameters, cell array of% strings%% Note that type verifications are not performed; e.g. if a numeric is in% place of a structure, it will be handled as a structure and as a result% an (unaddressed) error will occur.%% Returns:% S - the parameters structure with the missing values replaced% by defaults%% Author: Lucian Busoniu% Version: 1.0% History:REQARGIN = 2;if nargin < REQARGIN + 1, required = {};end;for i = 1 : length(required) if ~isfield(s, required{i}) error(['Field ' required{i} ' is required']); end;end;if isempty(defaults), return; end;fld = fieldnames(defaults);for i = 1 : length(fld) if ~isfield(s, fld{i}) % assign defaults s.(fld{i}) = defaults.(fld{i}); elseif isstruct(s.(fld{i})), % process recursively for defaults s.(fld{i}) = checkparams(s.(fld{i}), defaults.(fld{i})); end;end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -