Mercurial > hg > octave-avbm
diff src/data.cc @ 4513:508238e65af7
[project @ 2003-09-19 21:40:57 by jwe]
author | jwe |
---|---|
date | Fri, 19 Sep 2003 21:41:21 +0000 (2003-09-19) |
parents | b55eaa010770 |
children | 34c934a1b08f |
line wrap: on
line diff
--- a/src/data.cc +++ b/src/data.cc @@ -726,22 +726,25 @@ int nargin = args.length (); - if (nargin == 1 && nargout < 3) + if (nargin == 1) { - int nr = args(0).rows (); - int nc = args(0).columns (); + dim_vector dimensions = args(0).dims (); + + int ndims = dimensions.length (); - if (nargout == 0 || nargout == 1) + Matrix m (1, ndims); + + if (nargout > 1) { - Matrix m (1, 2); - m (0, 0) = nr; - m (0, 1) = nc; - retval(0) = m; + while (ndims--) + retval(ndims) = dimensions(ndims); } - else if (nargout == 2) + else { - retval(1) = nc; - retval(0) = nr; + for (int i = 0; i < ndims; i++) + m(0, i) = dimensions(i); + + retval(0) = m; } } else if (nargin == 2 && nargout < 2) @@ -931,7 +934,7 @@ int ndim = 0; int type = 0; - Array<int> dims; + dim_vector dims; // Check for type information.