Mercurial > hg > octave-nkf
diff src/ov.cc @ 3419:e71b3d1dd327
[project @ 2000-01-12 05:23:34 by jwe]
author | jwe |
---|---|
date | Wed, 12 Jan 2000 05:23:37 +0000 |
parents | ca92c9d3f882 |
children | 996bb7ea4507 |
line wrap: on
line diff
--- a/src/ov.cc +++ b/src/ov.cc @@ -754,10 +754,128 @@ } ColumnVector +octave_value::column_vector_value (bool force_string_conv, + bool force_vector_conversion) const +{ + ColumnVector retval; + + Matrix m = matrix_value (force_string_conv); + + if (error_state) + return retval; + + int nr = m.rows (); + int nc = m.columns (); + + if (nc == 1) + { + retval.resize (nr); + for (int i = 0; i < nr; i++) + retval (i) = m (i, 0); + } + else + { + string tn = type_name (); + gripe_invalid_conversion (tn.c_str (), "real column vector"); + } + + return retval; +} + +ComplexColumnVector +octave_value::complex_column_vector_value (bool force_string_conv, + bool force_vector_conversion) const +{ + ComplexColumnVector retval; + + ComplexMatrix m = complex_matrix_value (force_string_conv); + + if (error_state) + return retval; + + int nr = m.rows (); + int nc = m.columns (); + + if (nc == 1) + { + retval.resize (nc); + for (int i = 0; i < nc; i++) + retval (i) = m (i, 0); + } + else + { + string tn = type_name (); + gripe_invalid_conversion (tn.c_str (), "complex column vector"); + } + + return retval; +} + +RowVector +octave_value::row_vector_value (bool force_string_conv, + bool force_vector_conversion) const +{ + RowVector retval; + + Matrix m = matrix_value (force_string_conv); + + if (error_state) + return retval; + + int nr = m.rows (); + int nc = m.columns (); + + if (nr == 1) + { + retval.resize (nc); + for (int i = 0; i < nc; i++) + retval (i) = m (0, i); + } + else + { + string tn = type_name (); + gripe_invalid_conversion (tn.c_str (), "real row vector"); + } + + return retval; +} + +ComplexRowVector +octave_value::complex_row_vector_value (bool force_string_conv, + bool force_vector_conversion) const +{ + ComplexRowVector retval; + + ComplexMatrix m = complex_matrix_value (force_string_conv); + + if (error_state) + return retval; + + int nr = m.rows (); + int nc = m.columns (); + + if (nr == 1) + { + retval.resize (nc); + for (int i = 0; i < nc; i++) + retval (i) = m (0, i); + } + else + { + string tn = type_name (); + gripe_invalid_conversion (tn.c_str (), "complex row vector"); + } + + return retval; +} + +// Sloppy... + +Array<double> octave_value::vector_value (bool force_string_conv, bool force_vector_conversion) const { - ColumnVector retval; + Array<double> retval; Matrix m = matrix_value (force_string_conv); @@ -797,11 +915,11 @@ return retval; } -ComplexColumnVector +Array<Complex> octave_value::complex_vector_value (bool force_string_conv, bool force_vector_conversion) const { - ComplexColumnVector retval; + Array<Complex> retval; ComplexMatrix m = complex_matrix_value (force_string_conv);