[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 @@
             data = self.read_element()
         ''' 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
         '''
+        M,N = self.header['dims']
+        indptr = indptr[:N+1]
+        nnz = indptr[-1]
+        rowind = rowind[:nnz]
+        data   = data[:nnz]
         if have_sparse:
-            dims = self.header['dims']
-            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`
 



More information about the Scipy-svn mailing list