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

  1. % function sysout = strunc(sys,ord)
  2. %
  3. %   Truncates the state dimension of a SYSTEM
  4. %   matrix to ORD states, by eliminating rows
  5. %   and columns of the state matrices.
  6. %
  7. %   See also: HANKMR, REORDSYS, SRESID, and SYSBAL.
  8.  
  9. function sysout = strunc(sys,ord)
  10.  if nargin ~= 2
  11.    disp(['usage: sysout = strunc(sys,ord)']);
  12.    return
  13.  end
  14.  if isempty(ord)
  15.    return
  16.  end
  17.  if ord < 0 | (floor(ord) ~= ceil(ord))
  18.    error(['ord should be a nonnegative integer'])
  19.    return
  20.  end
  21.  [mtype,mrows,mcols,mnum] = minfo(sys);
  22.  if mtype == 'syst'
  23.    if ord > mnum
  24.      ord = mnum
  25.    end
  26.    sysout = sys([1:ord mnum+1:mnum+mrows+1],[1:ord mnum+1:mnum+mcols+1]);
  27.    sysout(1,ord+mcols+1) = ord;
  28.  else
  29.    error(['input matrix is not a SYSTEM matrix'])
  30.    return
  31.  end
  32. %
  33. % Copyright MUSYN INC 1991,  All Rights Reserved
  34.