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

📄 psoptimget.m

📁 遗传算法工具包
💻 M
字号:
function o = psoptimget(options,name,default,flag)
%PSOPTIMGET     Get PATTERNSEARCH OPTIONS parameters.
%   VAL = PSOPTIMGET(OPTIONS,'NAME') extracts the value of the named parameter
%   from optimization options structure OPTIONS, returning an empty matrix if
%   the parameter value is not specified in OPTIONS.  It is sufficient to
%   type only the leading characters that uniquely identify the
%   parameter.  Case is ignored for parameter names.  [] is a valid OPTIONS
%   argument.
%   
%   VAL = PSOPTIMGET(OPTIONS,'NAME',DEFAULT) extracts the named parameter as
%   above, but returns DEFAULT if the named parameter is not specified (is [])
%   in OPTIONS.  For example
%   
%     val = psoptimget(opts,'TolX',1e-4);
%   
%   returns val = 1e-4 if the TolX property is not specified in opts.
%   
%   See also PSOPTIMSET.

%   Copyright 2004 The MathWorks, Inc.
%   $Revision: 1.9 $  $Date: 2004/01/16 16:52:14 $

if nargin < 2
  error('gads:PSOPTIMGET:inputarg','Not enough input arguments.');
end
if nargin < 3
  default = [];
end
if nargin < 4
   flag = [];
end

% undocumented usage for fast access with no error checking
if isequal('fast',flag)
   o = psoptimgetfast(options,name,default);
   return
end

if ~isempty(options) && ~isa(options,'struct')
  error('gads:PSOPTIMGET:firstargerror','First argument must be an options structure created with PSOPTIMSET.');
end

if isempty(options)
  o = default;
  return;
end

optionsstruct = struct(  'SearchMethod', [], ...
    'PollMethod', [], ...
    'CompletePoll',[], ...
    'CompleteSearch',[], ...
    'MeshAccelerator',[], ...
    'MeshRotate',[], ...
    'PollingOrder', [], ...
    'Display', [], ...
    'OutputFcns', [], ...
    'PlotFcns', [], ...
    'PlotInterval', [], ...
    'InitialMeshSize',[], ...
    'MeshContraction', [], ...
    'MeshExpansion', [], ...
    'TolMesh', [], ...
    'MaxMeshSize', [], ...
    'MaxIteration', [], ...
    'MaxFunEvals', [], ...
    'TolBind',[], ...
    'ScaleMesh', [], ...
    'Cache',[], ...
    'CacheSize',[], ...
    'CacheTol',[], ...
    'TolFun', [], ...
    'TolX', [], ...
    'Vectorized', []);     
 
Names = fieldnames(optionsstruct);
%[m,n] = size(Names);
names = lower(Names);

lowName = lower(name);
j = strmatch(lowName,names);
if isempty(j)               % if no matches
  error('gads:PSOPTIMGET:invalidproperty',sprintf(['Unrecognized property name ''%s''.  ' ...
                 'See PSOPTIMSET for possibilities.'], name));
elseif length(j) > 1            % if more than one match
  % Check for any exact matches (in case any names are subsets of others)
  k = strmatch(lowName,names,'exact');
  if length(k) == 1
    j = k;
  else
    msg = sprintf('Ambiguous property name ''%s'' ', name);
    msg = [msg '(' Names{j(1),:}];
    for k = j(2:length(j))'
      msg = [msg ', ' Names{k,:}];
    end
    msg = sprintf('%s).', msg);
    error('gads:PSOPTIMGET:ambiguousproperty',msg);
  end
end

if any(strcmp(Names,Names{j,:}))
   o = options.(Names{j,:});
  if isempty(o)
    o = default;
  end
else
  o = default;
end

%------------------------------------------------------------------
function value = psoptimgetfast(options,name,defaultopt)
%OPTIMGETFAST Get OPTIM OPTIONS parameter with no error checking so fast.
%   VAL = OPTIMGETFAST(OPTIONS,FIELDNAME,DEFAULTOPTIONS) will get the
%   value of the FIELDNAME from OPTIONS with no error checking or
%   fieldname completion. If the value is [], it gets the value of the
%   FIELDNAME from DEFAULTOPTIONS, another OPTIONS structure which is 
%   probably a subset of the options in OPTIONS.
%

if ~isempty(options)
        value = options.(name);
else
    value = [];
end

if isempty(value)
    value = defaultopt.(name);
end


⌨️ 快捷键说明

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