www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@localmod/modeldev.m
function prf= modeldev(L,p_mdev,OpenDialog) %MODELDEV Create new MODELDEV object for a Response Feature Model % % pm= modeldev(m,p_mdev); % Used for creating children of localmods % Copyright 2000-2010 The MathWorks, Inc. and Ford Global Technologies, Inc. if nargin==3 && OpenDialog try % Add Feature L = AddFeat(L,zeros(1,nfactors(L)),length(features(L))); [L,OK]= gui_respfeat(L,numfeats(L)); catch OK = false; end else OK = true; end if ~OK prf= xregpointer; return end Name= RespFeatName(L); if ~any(strcmp(Name{end},Name(1:end-1))) % check that response feature doesn't already exist % update localmod in project p_mdev.model(L); % get Xglobal TP= p_mdev.mdevtestplan; X= dataptr(TP,'X'); Xglobal= X(end); % Base Model m= model(TP); yi= yinfo(m); xlu= units(L); isDatumRF= get(L,'isdatum'); yi.Name = Name{end}; yi.Symbol= Name{end}; if isDatumRF(end) % datum model yi.Units = xlu{1}; else yi.Units = ''; end m= yinfo(m,yi); % Call MODELDEV constructor. mdev= modeldev(Name{end},{m,Xglobal,xregpointer,'global'}); mdev=modelstage(mdev,2); prf= address(mdev); % Add new RF to tree p_mdev.AddChild(prf.info); prf.name(Name{end}); % % add new rf data pD= p_mdev.RFData; % add variable to response feature sweepset D= pD.info; % make new variable S= sweepset('Variable', 1 , '%g' , prf.name , 'Response Feature' , '' , 'none' ,zeros(size(D,1),1) ); if isempty(find(D, get(S,'Name'))) pD.info= [D S]; rfname= get(pD.info,'Name'); else rfname= get(S,'Name'); end % rf Y data is a sweepset filter ssf= sweepsetfilter(pD); ssf= setVarsFilter(ssf,rfname(end)); prf.AssignData('Y',ssf); % Have to fit Local Model again to calculate new RF p_mdev.Change_RespFeat; try % fit new Response Feature Model prf.fitmodel; catch prf.status(0); end else % already exists prf= xregpointer; if OpenDialog hFig=msgbox(['The response feature ',Name{end},' already exists. An alternative global model can be constructed by creating submodels.'],'Response Feature Setup','modal') ; uiwait(hFig); end end