# HG changeset patch # User John W. Eaton # Date 1231886024 18000 # Node ID dee629f14bfa808ec6809f11877ca5c43d560a16 # Parent cadc73247d655410197b32ea2ba69e24677109f4 repmat.m: handle negative dimensions properly diff --git a/scripts/ChangeLog b/scripts/ChangeLog --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,5 +1,7 @@ 2009-01-13 John W. Eaton + * general/repmat.m: Handle negative row or column dimension. + * elfun/lcm.m, general/accumarray.m, general/bicubic.m, general/cellidx.m, general/cplxpair.m, general/dblquad.m, general/gradient.m, general/interp1.m , general/pol2cart.m, diff --git a/scripts/general/repmat.m b/scripts/general/repmat.m --- a/scripts/general/repmat.m +++ b/scripts/general/repmat.m @@ -51,6 +51,12 @@ error ("repmat: invalid dimensional argument"); endif endif + + if (all (idx < 0)) + error ("repmat: invalid dimensions"); + else + idx = max (idx, 0); + endif if (numel (a) == 1) ## optimize the scalar fill case. @@ -121,3 +127,7 @@ # Test that sparsity is kept %!assert(sparse(4,4), repmat(sparse(2,2),[2 2])); + +%!assert (size (repmat (".", -1, 1)), [0, 1]); +%!assert (size (repmat (".", 1, -1)), [1, 0]); +%!error (size (repmat (".", -1, -1)));