From: <par...@us...> - 2012-09-22 08:15:12
|
Revision: 11069 http://octave.svn.sourceforge.net/octave/?rev=11069&view=rev Author: paramaniac Date: 2012-09-22 08:15:06 +0000 (Sat, 22 Sep 2012) Log Message: ----------- control: support custom plot styles Modified Paths: -------------- trunk/octave-forge/main/control/devel/__time_response_2__.m trunk/octave-forge/main/control/devel/multiplot3.m Modified: trunk/octave-forge/main/control/devel/__time_response_2__.m =================================================================== --- trunk/octave-forge/main/control/devel/__time_response_2__.m 2012-09-21 18:32:16 UTC (rev 11068) +++ trunk/octave-forge/main/control/devel/__time_response_2__.m 2012-09-22 08:15:06 UTC (rev 11069) @@ -25,17 +25,16 @@ % function [y, t, x_arr] = __time_response_2__ (sys, resptype, plotflag, tfinal, dt, x0, sysname) function [y, t, x] = __time_response_2__ (resptype, args, sysname, plotflag) - sys_idx = cellfun (@isa, args, {"lti"}); # look for LTI models + sys_idx = find (cellfun (@isa, args, {"lti"})); # look for LTI models, 'find' needed for plot styles sys_cell = cellfun (@ss, args(sys_idx), "uniformoutput", false); # convert to state-space if (! size_equal (sys_cell{:})) error ("%s: models must have equal sizes", resptype); endif - tmp = cellfun (@is_real_matrix, args); - vec_idx = find (tmp); - n_vec = length (vec_idx); - n_sys = length (sys_cell); + vec_idx = find (cellfun (@is_real_matrix, args)); # indices of vector arguments + n_vec = length (vec_idx); # number of vector arguments + n_sys = length (sys_cell); # number of LTI systems %if (n_vec >= 1) % arg = args{vec_idx(1)}; @@ -140,6 +139,7 @@ error ("time_response: invalid response type"); endswitch + style_idx = find (cellfun (@ischar, args)); outname = get (sys_cell{end}, "outname"); outname = __labels__ (outname, "y"); colororder = get (gca, "colororder"); @@ -147,7 +147,16 @@ for k = 1 : n_sys # for every system color = colororder(1+rem (k-1, rc), :); - style = {"-", "color", color}; + if (k == n_sys) + lim = numel (args); + else + lim = sys_idx(k+1); + endif + style = args(style_idx(style_idx > sys_idx(k) & style_idx <= lim)); + if (isempty (style)) + style = {"-", "color", color}; + endif + style discrete = ! ct_idx(k); if (discrete) # discrete-time system for i = 1 : p # for every output Modified: trunk/octave-forge/main/control/devel/multiplot3.m =================================================================== --- trunk/octave-forge/main/control/devel/multiplot3.m 2012-09-21 18:32:16 UTC (rev 11068) +++ trunk/octave-forge/main/control/devel/multiplot3.m 2012-09-22 08:15:06 UTC (rev 11069) @@ -3,6 +3,8 @@ figure (1) step2 (T_AH, T_opt) +figure (2) +step2 (T_AH, '-.r', T_opt, '-b') -figure (2) +figure (3) step2 (T_AH, c2d (T_opt, 1)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |