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

    function T=labels(mvp,TeX,reord)
% xregcubic/LABELS coefficient labels for xregcubic
% 
% T=labels(mvp {,TeX,reord})

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



if nargin<2
	TeX=1;
end

% % labels are stored in base model class
labs= get(mvp,'symbol');
if TeX
   labs= detex(labs);
end

if nfactors(mvp)<=1
	np= size(mvp,1);
	T= cell(np,1);
	T{1}= '1';
	if np>1
		T{2}= labs{1};
	end
	for i=2:np-1
		T{i+1}= [labs{1},'^',int2str(i)];
	end
else
	% reorder in descending order
	labs= labs(mvp.reorder);
	T= newlabels(mvp,labs);
end

if nargin<3 || ( nargin>2 && reord)
   T= T(termorder(mvp));
end


% ---------------------------------------
function T= newlabels(m,labs)
% reorder in descending order

MON= monomials(m);
T=cell(length(MON),1);
T{1}= '1';
for i=2:length(MON)
	t= unique(MON{i});
	T{i}= '';
	for j=1:length(t)
		k= t(j);
		f= find(k==MON{i});
		if length(f)==1
			T{i}= [T{i},'*',labs{k}];
		else
			T{i}= [T{i},'*',labs{k},'^',int2str(length(f))];
		end
	end
	T{i}(1)=[];
end

% ---------------------------------------
function T= oldlabels(mvp,labs)

% Constant Term
T={'1'};
for j=1:mvp.N(1)
   % 1st order term 
   T= [T ; labs(j) ];
   for k=j:mvp.N(2)
      % 2nd order terms
      if j==k
         % quadratic term
         T= [T ; {[labs{j},'^2']} ];
      else
         % 2nd order cross term
         T= [T ; {[labs{j},'*',labs{k}]} ];
      end
      for i=k:mvp.N(3)
         % 3rd order terms
         if i==k
            if j==i
               % cubic term
               T= [T ; {[labs{i},'^3']} ];
            else
               % linear x quadratic cross term 
               T= [T ; {[labs{j} '*',labs{i},'^2']} ];
            end
         else
            if j==k
               % quadratic x linear cross term 
               T= [T ; {[labs{j},'^2*',labs{i}]} ];
            else
               % 3rd order cross term
               T= [T ; {[labs{j},'*',labs{k},'*',labs{i}]}];
            end
         end
      end
   end
end