diff src/ov-re-sparse.cc @ 5903:11bb9bf343a0

[project @ 2006-07-26 03:36:33 by jwe]
author jwe
date Wed, 26 Jul 2006 03:36:33 +0000
parents c20eb7330d13
children c038c2947ee1
line wrap: on
line diff
--- a/src/ov-re-sparse.cc	Tue Jul 25 19:56:00 2006 +0000
+++ b/src/ov-re-sparse.cc	Wed Jul 26 03:36:33 2006 +0000
@@ -788,8 +788,24 @@
 mxArray *
 octave_sparse_matrix::as_mxArray (void) const
 {
-  // FIXME
-  return 0;
+  int nz = nzmax();
+  int nr = rows();
+  int nc = columns();
+  mxArray *retval = new mxArray (mxDOUBLE_CLASS, nr, nc, nz, mxREAL);
+  double *pr = static_cast<double *> (retval->get_data ());
+  int *ir = retval->get_ir();
+  int *jc = retval->get_jc();
+
+  for (int i = 0; i < nz; i++)
+    {
+      pr[i] = matrix.data(i);
+      ir[i] = matrix.ridx(i);
+    }
+
+  for (int i = 0; i < nc + 1; i++)
+    jc[i] = matrix.cidx(i);
+
+  return retval;
 }
 
 /*