Mercurial > octave-nkf
diff src/DLD-FUNCTIONS/sub2ind.cc @ 9666:a531dec450c4
allow 1D case for sub2ind and ind2sub
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Sun, 27 Sep 2009 11:26:41 +0200 |
parents | d9716e3ee0dd |
children | e317791645c4 |
line wrap: on
line diff
--- a/src/DLD-FUNCTIONS/sub2ind.cc Sat Sep 26 10:41:07 2009 +0200 +++ b/src/DLD-FUNCTIONS/sub2ind.cc Sun Sep 27 11:26:41 2009 +0200 @@ -40,12 +40,13 @@ dim_vector dv; octave_idx_type n = dimsv.length (); - if (n < 2) - error ("%s: dimension vector must have at least 2 elements", name); + if (n < 1) + error ("%s: dimension vector must not be empty", name); else { - dv.resize (n); - for (octave_idx_type i = 0; i < dimsv.length (); i++) + dv.resize (std::max (n, 2)); + dv(1) = 1; + for (octave_idx_type i = 0; i < n; i++) { octave_idx_type ii = static_cast<int> (dimsv(i)); if (ii == dimsv(i) && ii >= 0) @@ -84,13 +85,12 @@ int nargin = args.length (); octave_value retval; - if (nargin < 3) + if (nargin < 2) print_usage (); else { dim_vector dv = get_dim_vector (args(0), "sub2ind"); Array<idx_vector> idxa (nargin - 1); - dim_vector idims; if (! error_state) {