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

    function mdev= modeldev(Name,ModelInfo)
% MODELDEV general model development
%
%  mdev= modeldev(Name,{m,X,Y,3});
%
%  modeldev is a child of tree.

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



loadstr=0;

p0=xregpointer;
if nargin==0
    Name= 'Model 1';
    ModelInfo= {xreghybridrbf;struct('ptr',p0,'index',[]);struct('ptr',p0,'index',[]);'modeldev'};
    loadstr=1;
end
if nargin==1 && isstruct(Name)
    mdev= Name;

    if  mdev.Version==0
        mdev.Version=1;
        if isa(mdev.Statistics,'xregpointer')
            mdev.Statistics=[];
        end

        mdev.Version=1;
        mdev= mv_rmfield(mdev,{'Name','TreeIndex'});
    end

    if  mdev.Version<2 || ~isfield(mdev,'ModelStage')
        mdev.Version=3;
        mdev.ModelStage=-1;
    end
    if isfield(mdev,'tree')
        T= mdev.tree;
        mdev= rmfield(mdev,'tree');
    else
        T= mdev.mctree;
        mdev= rmfield(mdev,'mctree');
    end


    loadstr=1;
elseif nargin==1 && isa(Name,'modeldev')
    mdev= Name;
    return
else
    [Model,XData,YData,ViewIndex]= deal(ModelInfo{:});

    % Valid data formats
    %    xregpointer
    %    struct('ptr',p0,'index',[])

    mdev= struct(...
        'Model',Model,...         % Model Object
        'X',XData,...             % Do we need an index as well as a pointer?
        'Y',YData,...             % i.e. data= p.info(:,ind)
        'Outliers',[],...         % index to outliers
        'Data',p0,...             % Store for datum links
        'Statistics',[],...       % Summary Statistics
        'Validation',[],...       % data for validation - either X and Y data or a sweepsetfilter
        'Status',0,...            % 0= ~OK , 1=OK, 2= validated + ????
        'History',[],...          % undecided for the moment (mainly for reports and undo)
        'ViewIndex',ViewIndex,... % ViewIndex for Model Browser View
        'BestModel',p0,...        % pointer to best model
        'Version',4,...
        'ModelStage',-1);             % for class maintenance
    T= mctree(Name);
end


mdev= class(mdev,'modeldev',T);

if ~loadstr
    % store object in dynamic memory
    p= pointer(mdev);
    % must get a copy of the dynamic object (contains the pointer to self)
    mdev= p.info;
end