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

波变换

开发平台:

Matlab

  1. function M = subsasgn(A,index,InputVAL)
  2. %SUBSASGN Subscripted assignment for Laurent matrix.
  3. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 26-Apr-2001.
  4. %   Last Revision 13-Jun-2003.
  5. %   Copyright 1995-2004 The MathWorks, Inc.
  6. %   $Revision: 1.1.6.2 $ $Date: 2004/04/13 00:39:24 $ 
  7. switch index.type
  8. case '()',   % InputVAL is an lm object or a number
  9.     MA = A.Matrix;
  10.     if isnumeric(InputVAL)
  11.         if length(InputVAL)==1
  12.             nbR = length(index.subs{1});
  13.             nbC = length(index.subs{2});
  14.             InputVAL = InputVAL*ones(nbR,nbC);
  15.         end
  16.         InputVAL = laurmat(InputVAL);
  17.     end
  18.     if isa(InputVAL,'laurmat')  
  19.         MA(index.subs{:}) = InputVAL.Matrix;
  20.     else
  21.         error('Invalid argument value.')
  22.     end
  23.     M = laurmat(MA);
  24.         
  25. case '{}',   % InputVAL is an lp object or a number
  26.     MA = A.Matrix;
  27.     if isa(InputVAL,'laurpoly')  
  28.         MA{index.subs{:}} = InputVAL;
  29.     elseif isnumeric(InputVAL) && length(InputVAL)==1
  30.         MA{index.subs{:}} = laurpoly(InputVAL,0);
  31.     else
  32.         error('Invalid argument value.')
  33.     end
  34.     M = laurmat(MA);
  35.     
  36. case '.',    % InputVAL is a cell array of lp objects or of numbers.
  37.     if isequal(index.subs,'Matrix')
  38.         M = laurmat(InputVAL);
  39.     else
  40.         error('Invalid field name.')
  41.     end
  42. end