www.gusucode.com > mbctools 工具箱 matlab 源码程序 > mbctools/@mdev_local/updateDatumModel.m
function mdev= updateDatumModel(mdev) %UPDATEDATUMMODEL % % mdev= updateDatumModel(mdev) % Copyright 2006-2009 The MathWorks, Inc. pdatum= datumlink(mdev); Ydatum= pdatum.getdata('Y'); Yrf = mdev.RFData.info; % can only update datum models if data is the same CanUpdate = isequal(testnum(Yrf),testnum(Ydatum)); if CanUpdate bindex= BMIndex(mdev); TS= BestModel(mdev); isb= isbest(mdev); % undo two-stage model mdev=BestModel(mdev,0); switch bindex case 1 % rebuild it MakeTwoStage(mdev,0); case 2 % put new datum model in two-stage model DatumModel= pdatum.model; set(TS,'datum',DatumModel); if ~mdev.IsLinearised % rebuild twostage MakeTwoStage(mdev,0); mdev= info(mdev); mdev.MLE.Model= TS; mdev.TwoStage{2}= TS; % revalidate [~,~,mdev]= mle_validate(mdev); % make mle model the best model mdev= mle_best(mdev,1); % make mle rf models mdev= makemlerf(mdev); mdev= status(mdev,1); else % put new datum model in twostage models mdev.MLE.Model= TS; mdev.TwoStage= {TS,TS}; % revalidate [~,~,mdev]= mle_vallinmeth(mdev); mdev= makemlerf(mdev); mdev= status(mdev,1); end end if isb && ~isbest(mdev) % reselect as best model if necessary r= Parent(mdev); BestModel(r.info,address(mdev)); end mdev= info(mdev); end