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);
 
  */