www.gusucode.com > mbctools 工具箱 matlab 源码程序 > mbctools/@mdevtestplan/mdevtestplan.m
function TP=mdevtestplan(varargin) %MDEVTESTPLAN test plan constructor % Copyright 2000-2015 The MathWorks, Inc. and Ford Global Technologies, Inc. loadstr=0; if nargin==1 && isstruct(varargin{1}) loadstr=1; [TP,mdev]=i_updateOld(varargin{1}); elseif nargin==1 && isa(varargin{1},'mdevtestplan') TP= varargin{1}; return else if nargin ==0 Name= 'Testplan'; m= xreghybridrbf; loadstr=1; else Name= varargin{1}; m= varargin{2}; end d= designdev; % testplan object structure TP= struct(... 'Matched',0,... 'version',8,... 'Monitor',[],... 'Notes','',... 'DesignDev',d,... 'ConstraintData',xregpointer,... 'DataLink',xregpointer,... 'Responses',[],... 'PlotSetup',[],... 'Layout',[]); TP.Layout = struct('Testplan',[],... 'Local',[],... 'PtByPt',[],... 'Global',[],... 'TwoStage',[]); if loadstr mdev= modeldev; else ModelInfo={m,xregpointer,xregpointer,'testplan'}; mdev= modeldev(Name,ModelInfo); end end % class definition TP= class(TP,'mdevtestplan',mdev); if ~loadstr % these commands cannot be done on a static copy of the object % initialise dynamic copy of testplan p= pointer(TP); TP= p.info; % set up testplan as model stage 0 - not an actual model TP= modelstage(TP,0); end function [TP,mdev]=i_updateOld(TP) % called from loadobj mdev= modeldev(TP.modeldev); TP= mv_rmfield(TP,'modeldev'); while TP.version<8 switch TP.version case {0,1} TP.Monitor=[]; TP.version=2; case 2 TP.version=3; % Set up design object des= des_linearmod; des= model(des,model(mdev)); if ~isempty(TP.DesignGrid) des= reinit(des,TP.DesignGrid); end TP= mv_rmfield(TP,'DesignGrid'); TP.Design=des; case 3 TP.version=4; TP.DesignTree.designs={designobj(model(mdev))}; TP.DesignTree.parents=0; TP.DesignTree.chosen=1; if npoints(TP.Design) TP.DesignTree.designs(2)={TP.Design}; TP.DesignTree.parents=[0 1]; TP.DesignTree.chosen=2; end case 4 TP.version= 5; d= designdev; m = factorNames(model(mdev),{TP.Factors.Name}'); dtree=TP.DesignTree; for i=1:length(dtree.designs) md= model(dtree.designs{i}); if strcmp(class(md),'xregmodel') dtree.designs{i}= model(dtree.designs{i},m); end end if isempty(dtree.chosen) des= designobj(m); dtree= struct('designs',{{des}},'parent',0,'chosen',1); end d.DesignTree = dtree; d.design = dtree.designs{dtree.chosen}; d.BaseModel = m; TP.Notes = ''; TP.DesignDev= d; TP.ConstraintData= []; % set data link to testplan y data TP.DataLink = sweepsetfilter; TP.Responses= []; TP= mv_rmfield(TP,{'Design','DesignTree','SType'}); case 5 TP.version= 6; TP.ConstraintData= xregpointer; case 6 TP.version= 7; TP= mv_rmfield(TP,'Factors'); TP.PlotSetup = []; case 7 TP.version= 8; TP.Layout = struct('Testplan',[],... 'Local',[],... 'PtByPt',[],... 'Global',[],... 'TwoStage',[]); otherwise error(message('mbc:mdevtestplan:InvalidArgument3')) end end