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

[project @ 2007-11-08 18:54:10 by jwe]
author jwe
date Thu, 08 Nov 2007 18:54:10 +0000
parents a1dbe9d80eee
children
line wrap: on
line diff
--- a/scripts/control/system/sysdup.m	Thu Nov 08 16:36:06 2007 +0000
+++ b/scripts/control/system/sysdup.m	Thu Nov 08 18:54:10 2007 +0000
@@ -61,72 +61,72 @@
 
 function retsys = sysdup (Asys, output_list, input_list)
 
-  if( nargin != 3)
+  if (nargin != 3)
     print_usage ();
   endif
 
-  if( !isstruct(Asys))
-    error("Asys must be a system data structure (see ss, tf, or zp)")
+  if (! isstruct (Asys))
+    error ("Asys must be a system data structure (see ss, tf, or zp)")
   endif
 
-  Asys = sysupdate(Asys,"ss");
-  [nn,nz,mm,pp] = sysdimensions(Asys);
-  [aa,bb,cc,dd] = sys2ss(Asys);
+  Asys = sysupdate (Asys, "ss");
+  [nn, nz, mm, pp] = sysdimensions (Asys);
+  [aa, bb, cc, dd] = sys2ss (Asys);
 
   ## check for signal names
-  if(is_signal_list(input_list) | ischar(input_list))
-    input_list = sysidx(Asys,"in",input_list);
+  if (is_signal_list (input_list) || ischar (input_list))
+    input_list = sysidx (Asys, "in", input_list);
   endif
-  if(is_signal_list(output_list) | ischar(output_list))
-    output_list = sysidx(Asys,"out",output_list);
+  if (is_signal_list (output_list) || ischar (output_list))
+    output_list = sysidx (Asys, "out", output_list);
   endif
 
   ## first duplicate inputs
-  if(isvector(input_list))
-    for ii=1:length(input_list);
+  if (isvector (input_list))
+    for ii = 1:length(input_list);
       bb(:,mm+ii) = bb(:,input_list(ii));
       dd(:,mm+ii) = dd(:,input_list(ii));
-    end
-  elseif(!isempty(input_list))
-    error("input_list must be a vector or empty");
+    endfor
+  elseif (! isempty (input_list))
+    error ("input_list must be a vector or empty");
   endif
 
 
   ## now duplicate outputs
-  osize = min(size(output_list));
-  if(osize == 1)
-    for ii=1:length(output_list);
+  osize = min (size (output_list));
+  if (osize == 1)
+    for ii = 1:length(output_list);
       cc(pp+ii,:) = cc(output_list(ii),:);
       dd(pp+ii,:) = dd(output_list(ii),:);
-    end
-  elseif(osize != 0)
-    error("output_list must be a vector or empty");
+    endfor
+  elseif (osize != 0)
+    error ("output_list must be a vector or empty");
   endif
 
-  [stnam,innam,outnam,yd] = sysgetsignals(Asys);
-  tsam = sysgettsam(Asys);
+  [stnam, innam, outnam, yd] = sysgetsignals (Asys);
+  tsam = sysgettsam (Asys);
 
   ## pack system and then rename signals
-  retsys = ss(aa,bb,cc,dd,tsam,nn,nz);
-  retsys = syssetsignals(retsys,"in",innam,1:mm);
-  retsys = syssetsignals(retsys,"out",outnam,1:pp);
-  retsys = syssetsignals(retsys,"yd",yd,1:pp);
+  retsys = ss (aa, bb, cc, dd, tsam, nn, nz);
+  retsys = syssetsignals (retsys, "in", innam, 1:mm);
+  retsys = syssetsignals (retsys, "out", outnam, 1:pp);
+  retsys = syssetsignals (retsys, "yd", yd, 1:pp);
 
   ## update added input names
-  for ii=(mm+1):(mm+length(input_list))
+  for ii = (mm+1):(mm+length(input_list))
     onum = input_list(ii-mm);
-    strval = sprintf("%s(dup)",sysgetsignals(retsys,"in",onum,1) );
-    retsys = syssetsignals(retsys,"in",strval,ii);
+    strval = sprintf ("%s(dup)", sysgetsignals (retsys, "in", onum, 1));
+    retsys = syssetsignals (retsys, "in", strval, ii);
   endfor
 
   ## update added output names/discrete flags
   ## give default names to the added outputs
-  for jj=(pp+1):(pp+length(output_list))
+  for jj = (pp+1):(pp+length(output_list))
     onum = output_list(jj-pp);
-    strval = sprintf("%s(dup)",sysgetsignals(retsys,"out",onum,1) );
-    retsys = syssetsignals(retsys,"out",strval,jj);
-    dflg = sysgetsignals(retsys,"yd",onum);
-    retsys = syssetsignals(retsys,"yd",dflg,jj);
+    strval = sprintf ("%s(dup)", sysgetsignals (retsys, "out", onum, 1));
+    retsys = syssetsignals (retsys, "out", strval, jj);
+    dflg = sysgetsignals (retsys, "yd", onum);
+    retsys = syssetsignals (retsys, "yd", dflg, jj);
   endfor
 
 endfunction