⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 set_defaults.m

📁 时间序列分析中很用的源码,书的原名为时间序列分析的小波方法.
💻 M
字号:
function set_defaults(defaults, var_names)%  set_defaults -- Create variables with default values if non-existant in workspace.%%****f* wmtsa.utils/set_defaults%% NAME%    set_defaults -- Create variables with default values if non-existant in workspace.%% SYNOPSIS%   set_defaults(defaults, [var_names])%% INPUTS%   * defaults   -- strut of name-value pairs of defaults (struct).%   * var_names  -- (optional) names of specific variables to set defaults%                   (string or cell array of strings).%% OUTPUTS%% SIDE EFFECTS%   Function call requires a minimum of 1 input arguments; otherwise error.%% DESCRIPTION%   set_defaults checks whether variable(s) exist in the caller's workspace,%   and, if not, creates them with the supplied default values.  The default%   values are passed as a set of name-value pairs via the 'defaults' struct%   argument.  If the 'var_names' argument is specified, then only those %   variables in var_names are created.  Other all variables with the%   fieldnames in 'defaults' are created.%% USAGE%%% WARNINGS%%% ERRORS%%% EXAMPLE%   defaults.a = 1;%   defaults.b = 'abc';%   defaults.c = {'xyz', 1, 2, 3};%   %   % Example 1 - Create all variables with defaults;%   %             Variables do not exist in caller's workspace.              %   clear a b c%   set_defaults(defaults);%   whos a b c%%   % Example 2 - Create those variables that do not exist in caller's workspace.%   clear a b c%   b = 2%   set_defaults(defaults);%   whos a b c%   b%%   % Example 3 - Create specific variables with defaults.%   %             Some variables do exist in caller's workspace.              %   clear a b c%   a = 9%   var_names = {'a', 'b'}%   set_defaults(defaults);%   whos a b c% % NOTES%%% BUGS%%% TODO%%% ALGORITHM%%% REFERENCES%%% SEE ALSO%%% TOOLBOX%%% CATEGORY%%% AUTHOR%   Charlie Cornish%% CREATION DATE%%% COPYRIGHT%   (c) 2005 Charles R. Cornish%% MATLAB VERSION%   7.0%% CREDITS%%% REVISION%   $Revision: 612 $%%***%   $Id: set_defaults.m 612 2005-10-28 21:42:24Z ccornish $%% Set Defaultsusage_str = [ mfilename, '(defaults, [var_names])'];  %% Check arguments.error(nargerr(mfilename, nargin, [1:2], nargout, [0:0], 1, usage_str, 'struct'));if (~isstruct(defaults))  error('WMTSA:set_defaults:invalidArgumentDataType', ...        'Argument (defaults) must be a struct.');end% If var_names is emtpy, set defaults for all variable in defaults struct.if (~exist('var_names', 'var') || isempty(var_names))  var_names = fieldnames(defaults);elseif (ischar(var_names))  var_names = {var_names};else%  if (~iscellstr(var_names) & ~wmtsa_isvector(var_names))  if (~iscellstr(var_names) & ~wmtsa_isvector(var_names))    error('WMTSA:set_defaults:invalidArgumentDataType', ...          'Argument (var_names) must be a string or cell array of strings.');  endend%% Set defaults for each var in var_namesfor (i = 1:length(var_names))  var_name = var_names{i};  evalstr = ['~exist(''', var_name, ''', ''var'') || isempty(', var_name, ')'];  do_set_default = evalin('caller', evalstr);    if (do_set_default)    if (isfield(defaults, var_name))      var_value = defaults.(var_name);    else      error('WMTSA:set_defaults:noDefaultValue', ...            ['No default value in struct (', inputname(1), ') for variable (', var_name, ').']);    end    assignin('caller', var_name, var_value);  endendreturn

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -