Mercurial > octave-nkf
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