# HG changeset patch # User jwe # Date 1076007198 0 # Node ID 7bd3748e2735980fbbcaa1b9425856e5e987d2f2 # Parent c9e5b9fa7b175c53c89b6bef90dc2ca5a810b085 [project @ 2004-02-05 18:53:18 by jwe] diff -r c9e5b9fa7b17 -r 7bd3748e2735 src/ChangeLog --- a/src/ChangeLog Thu Feb 05 18:42:58 2004 +0000 +++ b/src/ChangeLog Thu Feb 05 18:53:18 2004 +0000 @@ -1,3 +1,7 @@ +2004-02-05 John W. Eaton + + * data.cc (Freshape): Chop trailing singletons from new dimensions. + 2004-02-03 John W. Eaton * error.cc (defun_usage_message): Only accept one arg, a const diff -r c9e5b9fa7b17 -r 7bd3748e2735 src/data.cc --- a/src/data.cc Thu Feb 05 18:42:58 2004 +0000 +++ b/src/data.cc Thu Feb 05 18:53:18 2004 +0000 @@ -1342,8 +1342,21 @@ return retval; } + // Remove trailing singletons in new_size, but leave at least 2 + // elements. + int n = new_size.length (); + while (n > 2) + { + if (new_size(n-1) == 1) + n--; + else + break; + } + + new_size.resize (n); + if (n < 2) { error ("reshape: expecting size to be vector with at least 2 elements");