From: <par...@us...> - 2012-09-22 10:31:04
|
Revision: 11077 http://octave.svn.sourceforge.net/octave/?rev=11077&view=rev Author: paramaniac Date: 2012-09-22 10:30:58 +0000 (Sat, 22 Sep 2012) Log Message: ----------- control: finish multiplot initial and impulse functions Modified Paths: -------------- trunk/octave-forge/main/control/inst/impulse.m trunk/octave-forge/main/control/inst/initial.m Modified: trunk/octave-forge/main/control/inst/impulse.m =================================================================== --- trunk/octave-forge/main/control/inst/impulse.m 2012-09-22 10:26:10 UTC (rev 11076) +++ trunk/octave-forge/main/control/inst/impulse.m 2012-09-22 10:30:58 UTC (rev 11077) @@ -1,4 +1,4 @@ -## Copyright (C) 2009 Lukas F. Reichlin +## Copyright (C) 2009, 2012 Lukas F. Reichlin ## ## This file is part of LTI Syncope. ## @@ -54,22 +54,35 @@ ## Author: Lukas Reichlin <luk...@gm...> ## Created: October 2009 -## Version: 0.1 +## Version: 0.2 -function [y_r, t_r, x_r] = impulse (sys, tfinal = [], dt = []) +function [y_r, t_r, x_r] = impulse (varargin) - ## TODO: multiplot feature: impulse (sys1, "b", sys2, "r", ...) - - if (nargin == 0 || nargin > 3) + if (nargin == 0) print_usage (); endif + + if (nargout) + sysname = {}; + else + sys_idx = find (cellfun (@isa, varargin, {"lti"})); + len = length (sys_idx); + sysname = cell (len, 1); + for k = 1 : len + try + sysname{k} = inputname(sys_idx(k)); + catch + sysname{k} = ""; + end_try_catch + endfor + endif - [y, t, x] = __time_response__ (sys, "impulse", ! nargout, tfinal, dt, [], inputname (1)); + [y, t, x] = __time_response__ ("impulse", varargin, sysname, ! nargout); if (nargout) - y_r = y; - t_r = t; - x_r = x; + y_r = y{1}; + t_r = t{1}; + x_r = x{1}; endif endfunction Modified: trunk/octave-forge/main/control/inst/initial.m =================================================================== --- trunk/octave-forge/main/control/inst/initial.m 2012-09-22 10:26:10 UTC (rev 11076) +++ trunk/octave-forge/main/control/inst/initial.m 2012-09-22 10:30:58 UTC (rev 11077) @@ -1,4 +1,4 @@ -## Copyright (C) 2009 Lukas F. Reichlin +## Copyright (C) 2009, 2012 Lukas F. Reichlin ## ## This file is part of LTI Syncope. ## @@ -66,22 +66,35 @@ ## Author: Lukas Reichlin <luk...@gm...> ## Created: October 2009 -## Version: 0.1 +## Version: 0.2 -function [y_r, t_r, x_r] = initial (sys, x0, tfinal = [], dt = []) +function [y_r, t_r, x_r] = initial (varargin) - ## TODO: multiplot feature: initial (sys1, "b", sys2, "r", ..., x0, ...) - - if (nargin < 2 || nargin > 4) + if (nargin < 2) print_usage (); endif - [y, t, x] = __time_response__ (sys, "initial", ! nargout, tfinal, dt, x0, inputname (1)); + if (nargout) + sysname = {}; + else + sys_idx = find (cellfun (@isa, varargin, {"lti"})); + len = length (sys_idx); + sysname = cell (len, 1); + for k = 1 : len + try + sysname{k} = inputname(sys_idx(k)); + catch + sysname{k} = ""; + end_try_catch + endfor + endif + [y, t, x] = __time_response__ ("initial", varargin, sysname, ! nargout); + if (nargout) - y_r = y; - t_r = t; - x_r = x; + y_r = y{1}; + t_r = t{1}; + x_r = x{1}; endif endfunction This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |