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

    function u=localsurface(param,nf)
% LOCALSURFACE userdefined local model
% 
%    L3 = localsurface(param)
%
%      Parents - model
%              - localmod
%

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


% Object properties
u.version=3;
u.userdefined = [];

if nargin==0
    u.userdefined = xregCreateModel(@xregcubic,1,'order',2);
    m = xregmodel('nfactors', 1);
    LocMod= localmod;
elseif isstruct(param) && isfield(param,'userdefined')
    % from loadobj
    u.userdefined = param.userdefined;
    if isfield(param,'localmod')
        % get localmod from structure
        LocMod= localmod(param.localmod);
    else
        LocMod= localmod;
    end
    if isfield(param,'xregmodel')
        % get xregmodel from structure
        m = param.xregmodel;
    else
        m = xregmodel('nfactors', nfactors(u.userdefined));
    end
elseif nargin==1 && isa(param,'xregmodel')
    % L = localsurface(model);
    u.userdefined = param;
    m = xregmodel('nfactors',nfactors(param));
    LocMod= localmod;
elseif nargin==2 && strcmp(param,'nfactors')
    % L = localsurface('nfactors',nf)
    u.userdefined = xregCreateModel(@xregcubic,nf,'order',2*ones(1,nf));
    m = xregmodel('nfactors',nf);
    LocMod= localmod;
else
    error(message('mbc:localsurface:InvalidArguments'))
end

u=class(u,'localsurface',LocMod,m);

if numfeats(u)==0
    np = numParams(u.userdefined);
    nf = nfactors(u);
    u = AddFeat(u,zeros(np,nf),1:np);
end