# HG changeset patch # User jwe # Date 1074794368 0 # Node ID e5639a6586c41814fdc64191044cbc2a83209e7a # Parent 8d4bb887f381c965a918ee9d1717290efcad3cd3 [project @ 2004-01-22 17:59:28 by jwe] diff -r 8d4bb887f381 -r e5639a6586c4 liboctave/Array.cc --- a/liboctave/Array.cc Thu Jan 22 16:01:51 2004 +0000 +++ b/liboctave/Array.cc Thu Jan 22 17:59:28 2004 +0000 @@ -848,6 +848,14 @@ dim_vector dv_old = dimensions; + if (n > dv_old.length ()) + { + dv_old.resize (n); + + for (int i = dv_old.length (); i < n; i++) + dv_old.elem (i) = 1; + } + dimensions = dv; Array ra_idx (dimensions.length (), 0); @@ -2239,22 +2247,22 @@ { dim_vector dv_tmp = rhs.squeeze().dims (); - if (dv_tmp.length () > 2) + switch (dv_tmp.length ()) { - (*current_liboctave_error_handler) - ("Dimension mismatch"); - - return 0; - } - - if (dv_tmp.length () == 1) - if (rhs_nr == 1) - rhs_nc = dv_tmp.elem (0); - - else if (dv_tmp.length () == 2) - { + case 1: + if (rhs_nr == 1) + rhs_nc = dv_tmp.elem (0); + break; + + case 2: rhs_nr = dv_tmp.elem (0); rhs_nc = dv_tmp.elem (1); + break; + + default: + (*current_liboctave_error_handler) + ("Array::assign2: Dimension mismatch"); + return 0; } }