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

    function m= xregmulti(varargin)
% XREGMULTI   Constructor for xregmulti object
%
%  M=XREGMULTI creates an multi-model object containing a single
%  xregcubic object.
%  M=XREGMULTI('nfactors',N) creates an object with N factors.
%  M=XREGMULTI(S) where S is a struct creates an object from
%  the structure S.
%

%  Copyright 2000-2015 The MathWorks, Inc. and Ford Global Technologies, Inc.



% Created 25/5/2000

if nargin && isstruct(varargin{1})
   m=varargin{1};
   mdl = m.xregmodel;
   m= rmfield(m,'xregmodel');
else 
   if nargin
      switch lower(varargin{1})
      case 'nfactors'
         nf=varargin{2};
      end
   else  
      nf=4;
   end
   m.currentindex=1;
   
   % default models
   mpoly = xregCreateModel(@xregcubic,nf);
   % quadratic
   m2 = set(mpoly,'order',2*ones(1,nf));
   m2 = setFitOpt(m2,minpress(m2));
   % cubic
   m3 = set(mpoly,'order',3*ones(1,nf));
   m3 = setFitOpt(m3,minpress(m3));
   
   % create Hybrid RBF models with 1/3*nObs centers
   hrbf3 = xregCreateModel(@xreghybridrbf,nf);
   % GPM
   mgpr = xregCreateModel(@xreggpr,nf);

   mdls = {m2 m3 hrbf3 mgpr};
   
   
   m.models=mdls;
   m.weights=ones(size(mdls))/length(mdls);
   m.version=2;
   mdl=xregmodel('nfactors',nf);
end
m=class(m,'xregmulti',mdl);

return