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

    function pm= modeldev(m,p_mdev,OpenDialog,doRefit)
%MODELDEV creates new MODELDEV object with same type of model
% 
% pm= modeldev(m,p_mdev);
%   Used for creating children of one-stage and global (RF models)

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

if nargin < 3
    OpenDialog = false;
end
if nargin<4
    doRefit = true;
end

if OpenDialog
    OldModel = reset(m);
    [NewModel,ok] = gui_ModelSetup(OldModel);
    if ~ok
        pm = xregpointer;
        return
    end
    IsSameModel = isequal(OldModel,NewModel);
    if ~IsSameModel
        m = NewModel;
    end
else
    IsSameModel = isequal(m,p_mdev.model);
end

% get Xglobal,Y
Xglobal= p_mdev.dataptr('X');
Y= p_mdev.dataptr('Y');

% make model development object for Global Model
mdev= modeldev(name(m),{m,Xglobal,Y,'global'});

% copy outliers down level
pm= outliers(mdev,p_mdev.outliers);

% add new child
p_mdev.AddChild(pm.info);
% make name unique
pm.name(pm.name);
if ~IsSameModel && doRefit
    % fit new model
    pm.refit;
else
    % model is copied from parent so copy stats and status to child
    pm.statistics(p_mdev.statistics);
    pm.status(p_mdev.status~=0);
end

% set up modelstage: if parent mdev MS=0 then this is 1 stage
% else this is a child of another global model => MS=MS of parent

parentMS = p_mdev.modelstage;
if parentMS==0
   MS=1;
else
   MS=parentMS;
end
pm.info=pm.modelstage(MS);