www.gusucode.com > mbctools 工具箱 matlab 源码程序 > mbctools/@mdevtestplan/MakeTemplate.m
function T= MakeTemplate(T,IncludeDesigns,IncludeResponses,Tname) %MAKETEMPLATE make test plan template % % T= MakeTemplate(T,IncludeDesigns,IncludeResponses,Tname) % Copyright 2000-2016 The MathWorks, Inc. and Ford Global Technologies, Inc. if nargin<2 IncludeDesigns=1; end if nargin<3 IncludeResponses=1; end defaultModel = HSModel(T.DesignDev); isPointByPoint = strcmpi(type(T),'point-by-point'); responseModels= children(T,@model); for i=1:length(responseModels) if isPointByPoint % need to store a two-stage model with localmulti as local model yi = yinfo(responseModels{i}); responseModels{i} = set(defaultModel,'local',responseModels{i}); %make sure output info is set responseModels{i} = yinfo(responseModels{i},yi); end responseModels{i}= reset(responseModels{i}); end if T.DataLink~=0 % strip sweepset filter T.DataLink= xregpointer; end % put on heap in a new location T= detach(T); p= xregpointer( T ); T= info(p); % clear validation data T= valdata(T,[]); if nargin>3 % rename testplan T= name(T,Tname); end if T.Matched % data exists so remove it T= AssignData(T,{xregpointer,xregpointer}); T.Matched = 0; T.Responses = responseModels; % remove data designs dtree= T.DesignDev(end).DesignTree; delDes= false(size(dtree.designs)) ; for i=2:length(dtree.designs) % really anything with the words Actual Design delDes(i) = ~isempty( strfind(name( dtree.designs{ i } ),'Actual Design') ); end % delete designs from tree dtree.designs(delDes)= []; dtree.parents(delDes)= []; if delDes(dtree.chosen) % select root design as best dtree.chosen=1; else dtree.chosen = dtree.chosen - sum(delDes(1:dtree.chosen-1)); end T.DesignDev(end).DesignTree= dtree; end T.ConstraintData = xregpointer; if ~IncludeDesigns for i=1:length(T.DesignDev) dtree= T.DesignDev(i).DesignTree; dtree.designs = dtree.designs(1); dtree.chosen = 1; dtree.parents = dtree.parents(1); T.DesignDev(i).DesignTree= dtree; end end if ~IncludeResponses T.Responses= []; end % detach from parent and remove p= address(T); T= detach(T); % clear test plan template T.Layout.Testplan = []; % remove from heap p.info=[]; freeptr(p);