home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / octa21fb.zip / octave / SCRIPTS.ZIP / scripts.fat / control / minfo.m < prev    next >
Text File  |  1999-12-24  |  3KB  |  86 lines

  1. ## Copyright (C) 1996 Auburn University.  All Rights Reserved
  2. ##
  3. ## This file is part of Octave. 
  4. ##
  5. ## Octave is free software; you can redistribute it and/or modify it 
  6. ## under the terms of the GNU General Public License as published by the 
  7. ## Free Software Foundation; either version 2, or (at your option) any 
  8. ## later version. 
  9. ## 
  10. ## Octave is distributed in the hope that it will be useful, but WITHOUT 
  11. ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
  12. ## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License 
  13. ## for more details.
  14. ## 
  15. ## You should have received a copy of the GNU General Public License 
  16. ## along with Octave; see the file COPYING.  If not, write to the Free 
  17. ## Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. 
  18.  
  19. ##  function [systype, nout, nin, ncstates, ndstates] = minfo(inmat)
  20. ##
  21. ## MINFO:  Determines the type of system matrix.  INMAT can be
  22. ##         a varying(*), system, constant, and empty matrix.
  23. ##
  24. ##    Returns:
  25. ##      systype can be one of:
  26. ##            varying, system, constant, and empty
  27. ##      nout is the number of outputs of the system
  28. ##      nin is the number of inputs of the system
  29. ##      ncstates is the number of continuous states of the system
  30. ##     ndstates is the number of discrete states of the system
  31.  
  32. function [systype, nout, nin, ncstates, ndstates] = minfo (inmat)
  33.  
  34.   ## Written by R. Bruce Tenison July 29, 1994
  35.   ## Modified by David Clem November 13, 1994
  36.   ## Modified by A. S. Hodel July 1995
  37.  
  38.   warning("minfo: obsolete.  Use sys2ss, sys2tf, or sys2zp.");
  39.     
  40.   if (nargin ~= 1 )
  41.     disp('MINFO: Wrong number of arguments')
  42.     systype = nout = nin = ncstates = ndstates = [];
  43.   endif
  44.   
  45.   [rr,cc] = size(inmat);
  46.   
  47.   ## Check for empty matrix first!
  48.   if (isempty(inmat))
  49.     systype = "empty";
  50.     nout = nin = ncstates = ndstates = 0;
  51.     return
  52.   
  53.   ## Check for Constant matrix
  54.  
  55.   elseif (rr == 1 || cc == 1)
  56.     systype = "constant";
  57.     nout = nin = ncstates = ndstates = 1;
  58.     return
  59.   
  60.   ## Check for system type matrix
  61.   elseif (inmat(rr,cc) == -Inf)
  62.     systype = "system";
  63.     ncstates = inmat(1,cc);
  64.     ndstates = inmat(rr,1);
  65.     nstates = ncstates + ndstates;
  66.     nout = rr - nstates - 1;
  67.     nin = cc - nstates - 1;
  68.   
  69.   ## Check for Varying type matrix
  70.   elseif (inmat(rr,cc) == Inf)
  71.     systype = "varying";
  72.     npoints = inmat(rr,cc-1);
  73.     nin = cc - 1;
  74.     nout = rr / npoints;
  75.     nstates = 0;
  76.  
  77.     ## Must be a standard matrix
  78.   else
  79.     systype = "constant";
  80.     nin = cc;
  81.     nout = rr;
  82.     ncstates = 0;
  83.     ndstates = 0;
  84.   endif
  85. endfunction
  86.