Mercurial > hg > octave-nkf
diff liboctave/Array.cc @ 10533:f094ac9bc93e
reuse Array<T>::cat and Sparse<T>::cat in cat/horzcat/vertcat
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Mon, 19 Apr 2010 15:31:49 +0200 |
parents | 2dd8ea8bfd71 |
children | 3f973f6c841c |
line wrap: on
line diff
--- a/liboctave/Array.cc +++ b/liboctave/Array.cc @@ -2609,11 +2609,17 @@ ("cat: dimension mismatch"); Array<T> retval (dv); - Array<idx_vector> idxa (dv.length (), 1, idx_vector::colon); + int nidx = std::max (dv.length (), dim + 1); + Array<idx_vector> idxa (nidx, 1, idx_vector::colon); octave_idx_type l = 0; for (octave_idx_type i = 0; i < n; i++) { + if (array_list[i].dims ().zero_by_zero ()) + continue; + + octave_quit (); + octave_idx_type u; if (dim < array_list[i].ndims ()) u = l + array_list[i].dims ()(dim); @@ -2623,6 +2629,8 @@ idxa(dim) = idx_vector (l, u); retval.assign (idxa, array_list[i]); + + l = u; } return retval;