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

    function dout = changeType(d,Type)
%CHANGETYPE change type of design
%
% dout = changeType(d,Type)

%  Copyright 2007-2011 The MathWorks, Inc.


if strcmp(Type, 'User-defined')
    % user-defined design
    dout=DesignType(d,0,Type);
elseif isoptimcapable(d) && any( strcmp(Type,{'D-optimal','V-optimal','A-optimal'}) )
    % optimal
    d=setoptimiser(d,lower(Type));
    dout=DesignType(d,1,Type);
else
    % spacefilling or classical
    csI=csetinterface;
    %csI=set(csI,'typefilter',opt);
    csI=set(csI,'nffilter',nfactors(d));
    % space filling
    csI=set(csI,'typefilter',1);
    createlist=get(csI,'classnames');
    viewlist=get(csI,'fullnames');
    % classical
    csI=set(csI,'typefilter',2);
    viewlist= [viewlist; get(csI,'fullnames')];
    createlist=[createlist; get(csI,'classnames')];
    dout = d;
    Index = find( strcmp( Type,viewlist ) );
    if ~isempty(Index)

        % constructor for new cset
        cs = feval(createlist{Index},toCandidateSet(candspace(d)));
        cs = reset(cs);
        cs = generate(cs);
        [~,~,tp]= CandidateSetInformation(cs);
        d = factorsettings(d,zeros(0,nfactors(d)));
        if tp==2
            dout = ClassicDesign(d,cs,NextDesignMode(d),'constrain');
        elseif tp==1
            dout = SpaceFillDesign(d,cs,NextDesignMode(d),'constrain');
        end
    else
        error(message('mbc:doe:InvalidType1'))
    end
end