www.gusucode.com > mbcdesign 工具箱 matlab 源码程序 > mbcdesign/@cset_lhs/cset_lhs.m
function obj=cset_lhs(varargin) % CSET_LHS Lattice CandidateSet generator object % % OBJ=CSET_LHS % OBJ=CSET_LHS(CS) % OBJ=CSET_LHS(STRUCT) % OBJ=CSET_LHS(OPTS) % OBJ=CSET_LHS(CS,OPTS) % OBJ=CSET_LHS(CS,OPTS,INDICES) % % Where OPTS={{LIMITS},N,CHOICEMETHOD,OPTIMMETHOD,RECALC}; % Copyright 2000-2007 The MathWorks, Inc. and Ford Global Technologies, Inc. if nargin==1 if isa(varargin{1},'candidateset') % Base candidateset provided cs = varargin{1}; obj = iDefaultStruct(cs); elseif isstruct(varargin{1}) % Call from loadobj cs = varargin{1}.candidateset; obj = rmfield(varargin{1},'candidateset'); else % Cell array of input options lims= cat(1,varargin{1}{1}{:}); cs = candidateset(lims); obj = iDefaultStruct(cs); obj = iSetInputArgs(obj, varargin{1}{2:5}); end elseif nargin==2 % Candidate set and options cs = varargin{1}; lims = cat(1,varargin{2}{1}{:}); cs = limits(cs,lims); obj = iDefaultStruct(cs); obj = iSetInputArgs(obj, varargin{2}{2:5}); elseif nargin==3 % additional input - for upgrading from old designs lims = cat(1,varargin{2}{1}{:}); cs= candidateset(lims); obj = iDefaultStruct(cs); obj = iSetInputArgs(obj, varargin{2}{2:5}); obj.indices = varargin{3}; else % No inputs - use defaults cs = candidateset(repmat([-1 1],4,1)); obj = iDefaultStruct(cs); end obj.version = 3; obj = class(obj, 'cset_lhs', cs); obj = pGeneratePoints(obj); function s = iDefaultStruct(cs) % Create a structure with default values for the object s.N = 100; s.alg = 'cdfvariance'; s.indices = []; s.delta = (diff(limits(cs),1,2)')./(s.N-1); s.optimalg ='random'; s.doRecalc = 0; s.guiflag = 0; s.stratify = zeros(1,length(s.delta)); s.symmetry = 1; s.stratify_levels = cell(1, length(s.delta)); function s = iSetInputArgs(s, N, Choice, Optim, Recalc) % Set the input arguments that are allowed in the standard constructor % syntax s.N = N; s.alg= Choice; s.optimalg = Optim; s.doRecalc = Recalc;