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

波变换

开发平台:

Matlab

  1. function M = laurmat(V)
  2. %LAURMAT Constructor for the class LAURMAT (Laurent Matrix).
  3. %   M = LAURMAT(V) returns a the Laurent matrix object M associated to V
  4. %   which can be a cell array (at most two dimensional) of Laurent
  5. %   polynomials (see LAURPOLY) or an ordinary matrix.
  6. %
  7. %   Examples:
  8. %      M1 = laurmat(eye(2,2))
  9. %      Z  = laurpoly(1,1);
  10. %      M2 = laurmat({1 Z;0 1})
  11. %
  12. %   See also LP.
  13. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 29-Mar-2001.
  14. %   Last Revision: 16-Jul-2003.
  15. %   Copyright 1995-2004 The MathWorks, Inc.
  16. %   $Revision: 1.1.6.2 $  $Date: 2004/04/13 00:39:15 $
  17. %===============================================
  18. % Class LAURMAT (Parent objects: None)
  19. % Fields:
  20. %   Matrix - cell array of Laurent polynomials.
  21. %===============================================
  22. switch nargin
  23. case 0 , V = laurpoly(1,0);
  24. end
  25. % Built object.
  26. %--------------
  27. if isa(V,'laurmat')
  28.     M = V; 
  29.     return
  30. elseif isnumeric(V)
  31.     V = num2cell(V);
  32. elseif isa(V,'laurpoly')
  33.     V = {V};
  34. elseif ~iscell(V)
  35.     error('Invalid argument value.')
  36. end
  37. [nbRow,nbCol] = size(V);
  38. for j=1:nbRow
  39.     for k=1:nbCol
  40.         if ~isa(V{j,k},'laurpoly'),
  41.             if isnumeric(V{j,k}), 
  42.                 V{j,k} = laurpoly(V{j,k},0);
  43.             else 
  44.                 error('Invalid argument value.')
  45.             end
  46.         end
  47.     end
  48. end
  49. M = struct('Matrix',{V});
  50. M = class(M,'laurmat');