www.gusucode.com > mbcdesign 工具箱 matlab 源码程序 > mbcdesign/@cset_ccd/nfactors.m

    function out=nfactors(obj,nf)
% NFACTORS  get/set number of factors in candidate set
%
%  NF=NFACTORS(OBJ)
%  OBJ=NFACTORS(OBJ,NF)
%  

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




% Created 16/11/2000

if nargin>1
   old_nf=nfactors(obj.candidateset);
   if nf<old_nf
      % cut out some dims
      obj.Alpha=obj.Alpha(1:nf);
   elseif nf>old_nf       
      % add some dimensions
      if all(obj.Alpha==1)
         obj.Alpha(old_nf+1:nf)=1;   % Face center cube
      elseif all(abs(obj.Alpha-sqrt(old_nf))<1e-10)
         val=sqrt(nf);     % Spherical
         obj.Alpha(1:nf)=val;
      else
         val=nf^0.25;       % custom: set to possible rotatable value
         obj.Alpha(old_nf+1:nf)=val;
      end
   end
   obj.candidateset=nfactors(obj.candidateset,nf);
   out=obj;
else
   out=nfactors(obj.candidateset);
end
return