# HG changeset patch # User Jaroslav Hajek # Date 1260867938 -3600 # Node ID bb30843c49291763758539af81bcff5eebc23b77 # Parent 672e1b49e01e39dbb326a9d3697761569cfe97fe fix subscripting of vectors by N-d arrays diff --git a/liboctave/Array.cc b/liboctave/Array.cc --- a/liboctave/Array.cc +++ b/liboctave/Array.cc @@ -767,11 +767,11 @@ // As you can see, the behaviour is weird, but the tests end up pretty // simple. Nah, I don't want to suggest that this is ad hoc :) - if (ndims () == 2 && n != 1) + if (ndims () == 2 && n != 1 && rd.is_vector ()) { - if (columns () == 1 && rd(0) == 1) + if (columns () == 1) rd = dim_vector (il, 1); - else if (rows () == 1 && rd(1) == 1) + else if (rows () == 1) rd = dim_vector (1, il); } diff --git a/liboctave/ChangeLog b/liboctave/ChangeLog --- a/liboctave/ChangeLog +++ b/liboctave/ChangeLog @@ -1,3 +1,8 @@ +2009-12-15 Jaroslav Hajek + + * Array.cc (Array::index (const idx_vector&)): Fix determining of + result dimensions. + 2009-12-15 Jaroslav Hajek * Range.cc (Range::elem, Range::checkelem, Range::index):