home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l455 / 2.ddi / MUTOOLS1.DI$ / STATECC.M < prev    next >
Encoding:
Text File  |  1993-03-11  |  835 b   |  31 lines

  1. % function sysout = statecc(sysin,t)
  2. %
  3. %   Applies a state coordinate transformation to the
  4. %   system matrix, yielding a new system matrix with:
  5. %       sysout = pck(inv(t)*a*t,inv(t)*b,c*t,d)
  6. %
  7. %   See also: EIG, INV, MINV, MMULT, REORDSYS, SRESID, 
  8. %             STRANS, and TRUNC.
  9.  
  10. function sysout = statecc(sysin,t)
  11. if nargin ~= 2
  12.   disp(['usage: sysout = statecc(sysin,t)']);
  13. else
  14.   [type,mrow,mcol,mnum] = minfo(sysin);
  15.   [nrt,nct] = size(t);
  16.   if nrt ~= mnum | nct ~= mnum
  17.     error(['incompatible dimensions'])
  18.     return
  19.   end
  20.   if strcmp(type,'syst')
  21.     [a,b,c,d] = unpck(sysin);
  22.     nab = t\[a b];
  23.     sysout = pck(nab(1:mnum,1:mnum)*t,nab(1:mnum,mnum+1:mnum+mcol),c*t,d);
  24.   else
  25.     disp(['sysin needs to be a SYSTEM matrix'])
  26.   end
  27. end
  28. %
  29. % Copyright MUSYN INC 1991,  All Rights Reserved
  30.