www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@localusermod/localusermod.m
function u= localusermod(param,nf) % USERLOCAL userdefined local model % % L3 = localusermod(param) % % Parents - model % - localmod % % Copyright 2000-2007 The MathWorks, Inc. and Ford Global Technologies, Inc. u.version=3; if nargin==0 param= xregusermod; end if isa(param,'localusermod') u=param; return end if isstruct(param) param.version= u.version; [u,LocMod,m]= i_Update(param); elseif nargin==2 && strcmp(param,'nfactors') % L = localusermod('nfactors',nf) cfglist=getmodellist(xregusermod,nf); if isempty(cfglist) error(message('mbc:localbspline:InvalidValue1', nf)) end u.userdefined= xregusermod('name',cfglist{1}); m = xregmodel('nfactors',nf); LocMod= localmod; else if isa(param,'xregmodel') u.userdefined = param; else u.userdefined= xregusermod('name',param); end nf= nfactors(u.userdefined); m = xregmodel('nfactors',nf); LocMod= localmod; end u=class(u,'localusermod',LocMod,m); if numfeats(u)==0 np= numParams(u.userdefined); u=AddFeat(u,zeros(np,nfactors(u)),1:np); end function [u,LocMod,m]= i_Update(u) if ~isfield(u,'localmod') LocMod= localmod; else LocMod= localmod(u.localmod); u= mv_rmfield(u,'localmod'); end if ~isfield(u,'model') m = model; else m = model(u.model); u= mv_rmfield(u,'model'); end