From: <par...@us...> - 2010-10-16 09:41:29
|
Revision: 7848 http://octave.svn.sourceforge.net/octave/?rev=7848&view=rev Author: paramaniac Date: 2010-10-16 09:41:22 +0000 (Sat, 16 Oct 2010) Log Message: ----------- control: bugfix for cases like frd (ss (5)) + 4 Modified Paths: -------------- trunk/octave-forge/main/control/devel/__adjust_frd_data__.m trunk/octave-forge/main/control/devel/test_frd.m Modified: trunk/octave-forge/main/control/devel/__adjust_frd_data__.m =================================================================== --- trunk/octave-forge/main/control/devel/__adjust_frd_data__.m 2010-10-15 18:54:14 UTC (rev 7847) +++ trunk/octave-forge/main/control/devel/__adjust_frd_data__.m 2010-10-16 09:41:22 UTC (rev 7848) @@ -32,14 +32,14 @@ if (isscalar (H)) H = reshape (H, 1, 1, []); if (lw > 1) - H = repmat (H, [1, 1, lw]); # needed for "frd1 + scalar2" or "scalar1 * frd2) + H = repmat (H, [1, 1, lw]); # needed for "frd1 + scalar2" or "scalar1 * frd2) endif - elseif (isvector (H)) # SISO system (H is a vector) + elseif (isvector (H) && length (H) == lw) # SISO system (H is a vector) H = reshape (H, 1, 1, []); elseif (ismatrix (H)) H = reshape (H, rows (H), []); if (lw > 1) - H = repmat (H, [1, 1, lw]); # needed for "frd1 + matrix2" or "matrix1 * frd2) + H = repmat (H, [1, 1, lw]); # needed for "frd1 + matrix2" or "matrix1 * frd2) endif else error ("frd: first argument H invalid"); Modified: trunk/octave-forge/main/control/devel/test_frd.m =================================================================== --- trunk/octave-forge/main/control/devel/test_frd.m 2010-10-15 18:54:14 UTC (rev 7847) +++ trunk/octave-forge/main/control/devel/test_frd.m 2010-10-16 09:41:22 UTC (rev 7848) @@ -83,7 +83,9 @@ % k2 = frd (tf ([1, 2; 3, 4])) k2 = frd (tf (5)); +frd (ss (5)) + 4; + %{ P = frd ((1:45)*(1-2i), logspace (-2,3,45)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |