From: <par...@us...> - 2011-12-18 16:02:32
|
Revision: 9431 http://octave.svn.sourceforge.net/octave/?rev=9431&view=rev Author: paramaniac Date: 2011-12-18 16:02:26 +0000 (Sun, 18 Dec 2011) Log Message: ----------- control-devel: check that nr <= n Modified Paths: -------------- trunk/octave-forge/extra/control-devel/inst/__conred_sb16ad__.m trunk/octave-forge/extra/control-devel/inst/__modred_ab09id__.m trunk/octave-forge/extra/control-devel/inst/__modred_check_order__.m trunk/octave-forge/extra/control-devel/inst/bstmodred.m trunk/octave-forge/extra/control-devel/inst/cfconred.m trunk/octave-forge/extra/control-devel/inst/fwcfconred.m trunk/octave-forge/extra/control-devel/inst/hnamodred.m Modified: trunk/octave-forge/extra/control-devel/inst/__conred_sb16ad__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__conred_sb16ad__.m 2011-12-18 15:43:20 UTC (rev 9430) +++ trunk/octave-forge/extra/control-devel/inst/__conred_sb16ad__.m 2011-12-18 16:02:26 UTC (rev 9431) @@ -109,7 +109,7 @@ endswitch case {"order", "ncr", "nr"} - [ncr, ordsel] = __modred_check_order__ (val); + [ncr, ordsel] = __modred_check_order__ (val, rows (ac)); case "tol1" tol1 = __modred_check_tol__ (val, "tol1"); Modified: trunk/octave-forge/extra/control-devel/inst/__modred_ab09id__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__modred_ab09id__.m 2011-12-18 15:43:20 UTC (rev 9430) +++ trunk/octave-forge/extra/control-devel/inst/__modred_ab09id__.m 2011-12-18 16:02:26 UTC (rev 9431) @@ -92,7 +92,7 @@ [aw, bw, cw, dw, jobw] = __modred_check_weight__ (val, dt, [], m); case {"order", "n", "nr"} - [nr, ordsel] = __modred_check_order__ (val); + [nr, ordsel] = __modred_check_order__ (val, rows (a)); case "tol1" tol1 = __modred_check_tol__ (val, "tol1"); Modified: trunk/octave-forge/extra/control-devel/inst/__modred_check_order__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__modred_check_order__.m 2011-12-18 15:43:20 UTC (rev 9430) +++ trunk/octave-forge/extra/control-devel/inst/__modred_check_order__.m 2011-12-18 16:02:26 UTC (rev 9431) @@ -22,11 +22,15 @@ ## Created: November 2011 ## Version: 0.1 -function [nr, ordsel] = __modred_check_order__ (nr) +function [nr, ordsel] = __modred_check_order__ (nr, n) if (! issample (nr, 0) || nr != round (nr)) error ("modred: order of reduced model must be an integer >= 0"); endif + + if (nr > n) + error ("modred: order of reduced model can't be larger than the original one") + endif ordsel = 0; Modified: trunk/octave-forge/extra/control-devel/inst/bstmodred.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/bstmodred.m 2011-12-18 15:43:20 UTC (rev 9430) +++ trunk/octave-forge/extra/control-devel/inst/bstmodred.m 2011-12-18 16:02:26 UTC (rev 9431) @@ -274,7 +274,7 @@ val = varargin{k+1}; switch (key) case {"order", "nr"} - [nr, ordsel] = __modred_check_order__ (val); + [nr, ordsel] = __modred_check_order__ (val, rows (a)); case "tol1" tol1 = __modred_check_tol__ (val, "tol1"); Modified: trunk/octave-forge/extra/control-devel/inst/cfconred.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/cfconred.m 2011-12-18 15:43:20 UTC (rev 9430) +++ trunk/octave-forge/extra/control-devel/inst/cfconred.m 2011-12-18 16:02:26 UTC (rev 9431) @@ -190,7 +190,7 @@ val = varargin{k+1}; switch (key) case {"order", "ncr", "nr"} - [ncr, ordsel] = __modred_check_order__ (val); + [ncr, ordsel] = __modred_check_order__ (val, n); case "tol1" tol1 = __modred_check_tol__ (val, "tol1"); Modified: trunk/octave-forge/extra/control-devel/inst/fwcfconred.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/fwcfconred.m 2011-12-18 15:43:20 UTC (rev 9430) +++ trunk/octave-forge/extra/control-devel/inst/fwcfconred.m 2011-12-18 16:02:26 UTC (rev 9431) @@ -173,7 +173,7 @@ val = varargin{k+1}; switch (key) case {"order", "ncr", "nr"} - [ncr, ordsel] = __modred_check_order__ (val); + [ncr, ordsel] = __modred_check_order__ (val, n); case {"tol1", "tol"} tol1 = __modred_check_tol__ (val, "tol1"); Modified: trunk/octave-forge/extra/control-devel/inst/hnamodred.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/hnamodred.m 2011-12-18 15:43:20 UTC (rev 9430) +++ trunk/octave-forge/extra/control-devel/inst/hnamodred.m 2011-12-18 16:02:26 UTC (rev 9431) @@ -357,7 +357,7 @@ jobv = 4 case {"order", "nr"} - [nr, ordsel] = __modred_check_order__ (val); + [nr, ordsel] = __modred_check_order__ (val, rows (a)); case "tol1" tol1 = __modred_check_tol__ (val, "tol1"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |