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);