# [Scipy-svn] r3762 - in trunk/scipy/io: . matlab

scipy-svn@scip... scipy-svn@scip...
Tue Jan 1 23:37:21 CST 2008

```Author: wnbell
Date: 2008-01-01 23:37:17 -0600 (Tue, 01 Jan 2008)
New Revision: 3762

Modified:
trunk/scipy/io/matlab/mio5.py
trunk/scipy/io/mmio.py
Log:
fixed small bug in MATLAB 6 sparse reader
updated use of sparse dims parameter

Modified: trunk/scipy/io/matlab/mio5.py
===================================================================
--- trunk/scipy/io/matlab/mio5.py	2008-01-02 04:07:30 UTC (rev 3761)
+++ trunk/scipy/io/matlab/mio5.py	2008-01-02 05:37:17 UTC (rev 3762)
@@ -359,19 +359,24 @@
''' From the matlab (TM) API documentation, last found here:
http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/
-        rowind are simply the row indices for all the (res) non-zero
+        rowind are simply the row indices for all the (nnz) non-zero
entries in the sparse array.  rowind has nzmax entries, so
-        may well have more entries than len(res), the actual number
-        of non-zero entries, but rowind[len(res):] can be discarded
+        may well have more entries than nnz, the actual number
+        of non-zero entries, but rowind[nnz:] can be discarded
and should be 0. indptr has length (number of columns + 1),
and is such that, if D = diff(colind), D[j] gives the number
of non-zero entries in column j. Because rowind values are
stored in column order, this gives the column corresponding to
each rowind
'''
+        indptr = indptr[:N+1]
+        nnz = indptr[-1]
+        rowind = rowind[:nnz]
+        data   = data[:nnz]
if have_sparse:
-            return scipy.sparse.csc_matrix((data,rowind,indptr), dims)
+            from scipy.sparse import csc_matrix
+            return csc_matrix((data,rowind,indptr), shape=(M,N))
else:
return (dims, data, rowind, indptr)

Modified: trunk/scipy/io/mmio.py
===================================================================
--- trunk/scipy/io/mmio.py	2008-01-02 04:07:30 UTC (rev 3761)
+++ trunk/scipy/io/mmio.py	2008-01-02 05:37:17 UTC (rev 3762)
@@ -430,7 +430,7 @@

V = concatenate((V,od_V))

-            a = coo_matrix((V, (I, J)), dims=(rows, cols), dtype=dtype)
+            a = coo_matrix((V, (I, J)), shape=(rows, cols), dtype=dtype)
else:
raise NotImplementedError,`format`

```