diff scripts/control/system/sysgetsignals.m @ 7135:8aa770b6c5bf

[project @ 2007-11-08 18:54:10 by jwe]
author jwe
date Thu, 08 Nov 2007 18:54:10 +0000
parents 1d0d7be2d0f8
children
line wrap: on
line diff
--- a/scripts/control/system/sysgetsignals.m
+++ b/scripts/control/system/sysgetsignals.m
@@ -148,50 +148,55 @@
 
   if (nargin < 1 || nargin > 4)
     print_usage ();
-  elseif( ! isstruct(sys) )
-    error("input argument must be a system data structure");
+  elseif (! isstruct (sys))
+    error ("input argument must be a system data structure");
+  endif
+  if (nargin < 4)
+    strflg = 0;
   endif
-  if(nargin < 4)  strflg = 0; endif
-  if(nargin == 1)
-    sys = sysupdate(sys,"ss");          #make sure ss is up to date
-    stname = sysgetsignals(sys,"st");
-    inname = sysgetsignals(sys,"in");
-    outname = sysgetsignals(sys,"out");
-    yd = sysgetsignals(sys,"yd");
-  elseif(!(ischar(sigid) & min(size(sigid)) == 1))
-    error(sprintf("sigid(%dx%d) must be a string)",rows(sigid),columns(sigid)));
+
+  if (nargin == 1)
+    sys = sysupdate (sys, "ss");          #make sure ss is up to date
+    stname = sysgetsignals (sys, "st");
+    inname = sysgetsignals (sys, "in");
+    outname = sysgetsignals (sys, "out");
+    yd = sysgetsignals (sys, "yd");
+  elseif (! (ischar (sigid) && min (size (sigid)) == 1))
+    error ("sigid(%dx%d) must be a string)", rows (sigid), columns (sigid));
   else
-    if(strcmp("st",sigid))         stname = sys.stname;
-    elseif(strcmp("in",sigid))     stname = sys.inname;
-    elseif(strcmp("out",sigid))    stname = sys.outname;
-    elseif(strcmp("yd",sigid))     stname = vec(sys.yd)';
+    if (strcmp ("st", sigid))
+      stname = sys.stname;
+    elseif (strcmp ("in", sigid))
+      stname = sys.inname;
+    elseif (strcmp ("out", sigid))
+      stname = sys.outname;
+    elseif (strcmp ("yd", sigid))
+      stname = vec(sys.yd)';
     else
-      error(sprintf("sigid=%s must be \"st\", \"in\", \"out\", or \"yd\"", ...
-        sigid));
+      error ("sigid=%s must be \"st\", \"in\", \"out\", or \"yd\"", sigid);
     endif
-    if(nargin >= 3)
-      if( is_signal_list(signum) | ischar(signum) )
-        signum = cellidx(stname,signum);
-      end
-      if(max(signum) > length(stname))
-        error(sprintf("sysgetsignals(sys,\"%s\",%d):only %d entries.\n", ...
-          sigid,signum, rows(stname)));
+    if (nargin >= 3)
+      if (is_signal_list (signum) || ischar (signum))
+        signum = cellidx (stname, signum);
+      endif
+      if (max (signum) > length (stname))
+        error ("sysgetsignals(sys,\"%s\",%d):only %d entries",
+               sigid, signum, rows (stname));
       else
-        if(!isscalar(strflg))
-          error("strflg must be a scalar");
+        if (! isscalar (strflg))
+          error ("strflg must be a scalar");
         endif
-        switch(strflg)
-        case(0),
-          stname = stname(signum);
-        case(1),
-          if(length(signum) > 1)
-            error("strflg=1, length(signum) = %d",length(signum));
+        switch (strflg)
+        case 0
+          stname = stname (signum);
+        case 1
+          if (length (signum) > 1)
+            error ("strflg=1, length(signum) = %d", length (signum));
           endif
           stname = stname{signum};
-        otherwise,
+        otherwise
           error ("invalid value of strflg = %e", strflg);
         endswitch
-
       endif
     endif
   endif