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

  1. % function [a,b,c,d] = unpck(sys)
  2. %
  3. %   Unpacks a SYSTEM matrix into its 4 separate 
  4. %   state-space entries.
  5. %
  6. %   See also: PCK, PSS2SYS, SYS2PSS, VPCK and VUNPCK.
  7.  
  8. function [a,b,c,d] = unpck(sys)
  9.   if nargin ~= 1
  10.     disp('usage: [a,b,c,d] = unpck(sys)')
  11.     return
  12.   end
  13.   [systype,sysr,sysc,sysn] = minfo(sys);
  14.   if systype == 'syst'
  15.     states = sysn;
  16.     [nr nc] = size(sys);
  17.     nr = nr-1;
  18.     nc = nc-1;
  19.     a = sys(1:states,1:states);
  20.     b = sys(1:states,states+1:nc);
  21.     c = sys(states+1:nr,1:states);
  22.     d = sys(states+1:nr,states+1:nc);
  23.   elseif systype == 'cons'
  24.     a = [];
  25.     b = [];
  26.     c = [];
  27.     d = sys;
  28.   elseif systype == 'vary'
  29.     error(['can''t unpack a VARYING matrix']);
  30.     return
  31.   else
  32.     a = [];
  33.     b = [];
  34.     c = [];
  35.     d = [];
  36.   end
  37. %
  38. % Copyright MUSYN INC 1991,  All Rights Reserved
  39.