www.gusucode.com > mbcdesign 工具箱 matlab 源码程序 > mbcdesign/@cset_pointset/cset_pointset.m

    function obj = cset_pointset(varargin)
%CSET_POINTSET Pointset object candidate set wrapper
%
%  OBJ=CSET_POINTSET
%  OBJ=CSET_POINTSET(CS)
%  OBJ=CSET_POINTSET(STRUCT)
%  OBJ=CSET_POINTSET(OPTS)
%  OBJ=CSET_POINTSET(CS,OPTS)
%
%  Where OPTS={{LIMITS},NPoints}

%  Copyright 2007 The MathWorks, Inc.

if nargin==1 && isstruct(varargin{1})
    obj = varargin{1};
    cs = obj.candidateset;
    obj = rmfield(obj, 'candidateset');
else
    [cs, N] = i_getInputArgs(varargin{:});
    obj.NPoints = N;
    obj.PointSet = [];
    
    % Scrambling can either be done immediately or postponed until a call
    % to generate is made.  By default no caching takes place and the
    % candidateset is always generated.
    obj.ScrambleCache = [];
    obj.UseScrambleCache = false;
end

obj.version = 1;
obj = class(obj,'cset_pointset',cs);


% Parse input arguments
function [cs, N] = i_getInputArgs(varargin)
N = 10000; % Default number of points
if nargin==2
    cs = varargin{1};
    lims = cat(1,varargin{2}{1}{:});
    cs = limits(cs,lims);
    N = varargin{2}{2};
elseif nargin==1
    if isa(varargin{1},'candidateset')
        cs = varargin{1};
    else
        lims = cat(1,varargin{1}{1}{:});
        cs = candidateset(lims);
        N = varargin{1}{2};
    end
else
    cs= candidateset(repmat([-1 1],4,1));
end