Mercurial > hg > octave-lyh
diff src/data.cc @ 12570:1a93988610a3
Reverse changset cc8ccdfec424. Restore 3-input form of diag().
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Sun, 03 Apr 2011 07:00:34 -0700 |
parents | cc8ccdfec424 |
children | bed932910eb9 |
line wrap: on
line diff
--- a/src/data.cc +++ b/src/data.cc @@ -1264,6 +1264,20 @@ else retval = args(0).diag(k); } + else if (nargin == 3) + { + octave_value arg0 = args(0); + if (arg0.ndims () == 2 && (args(0).rows () == 1 || args(0).columns () == 1)) + { + octave_idx_type m = args(1).int_value (), n = args(2).int_value (); + if (! error_state) + retval = arg0.diag ().resize (dim_vector (m, n)); + else + error ("diag: invalid dimensions"); + } + else + error ("diag: V must be a vector"); + } else print_usage (); @@ -1304,7 +1318,6 @@ %!assert(diag (int8([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0]), -1), int8([1; 2; 3])); %!error <Invalid call to diag.*> diag (); -%!error <Invalid call to diag.*> diag (ones(3, 1),0,1); */