Mercurial > octave
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; } /*