www.gusucode.com > mbctools 工具箱 matlab 源码程序 > mbctools/@mdev_local/pSetModel.m

    function mdev = pSetModel(mdev,L)
%PSETMODEL
%
% mdev = pSetModel(mdev,L)

%  Copyright 2007 The MathWorks, Inc.

TP = mdevtestplan(mdev);

OldP= address(mdev);
p= Parent(mdev);
TSold= p.model;

set(L,'DatumType',get(TSold,'DatumType'));
m= model(TP);
TS= xregtwostage(L,m);
p.model(TS);
% copy current outliers
TSoutliers= p.outliers;
p.outliers(OldP.outliers);

ch= p.makechildren;
% set old model and outliers back
p.model(TSold);
p.outliers(TSoutliers);

if ch==0
    % model fit failed
    % reselect node
    xregpointer(mdev);
else
    % remove old local model
    p= OldP.delete;

    if ch.numChildren>0 && ismember(DatumType(L),1:2)
        % have to update datumlink
        pdatum= ch.children(1);
        p.AssignData('data',pdatum);
        ch.UpdateLinks(1);
    end

    % now move back to local node
    p= ch;
    p.name(name(L));

    mdev = info(p);
end