reduce.m
上传用户:haiyisale
上传日期:2013-01-09
资源大小:3246k
文件大小:1k
源码类别:

波变换

开发平台:

Matlab

  1. function [C,d] = reduce(COld,dOld,precision)
  2. %REDUCE Simplification for Laurent polynomial.
  3. %   [C,D] = REDUCE(COLD,DOLD,PRECISION) returns the "new" values  
  4. %   the cofoefficients C and the maximum degree D for a Laurent
  5. %   polynomial, starting from the corresponding "old" values.
  6. %   COLD and DOLD. The element of COLD which the absolute values
  7. %   are less than PRECISION are set to zero, then the "new"  
  8. %   maximum degree D is computed.
  9. %
  10. %   [C,D] = REDUCE(COLD,DOLD) uses PRECISION = 1E-8.
  11. % Copyright 2004 The MathWorks, Inc.
  12. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 20-Mar-2001.
  13. %   Last Revision 24-Jun-2003.
  14. if nargin<3 , precision = 1E-8; end
  15. C = COld;
  16. C(abs(C)<precision) = 0;
  17. idxNZ = find(C~=0);
  18. if ~isempty(idxNZ)
  19.     d = dOld-(idxNZ(1)-1);
  20.     idxMin = min(idxNZ);
  21.     idxMax = max(idxNZ);
  22.     C([1:idxMin-1,idxMax+1:length(C)]) = [];
  23. else
  24.     d = 0;
  25.     C = 0;
  26. end