[SciPy-user] scipy.io.loadmat bug?

Nickolas Fotopoulos nvf at MIT.EDU
Tue Jun 14 17:35:46 EDT 2005


There are parts of a Matlab pipeline I don't want to port to Python, but
I'd like to use Python for some post-processing.  I am trying to load a
MatlabR14-generated .mat file into python using scipy.io.loadmat.  With
the following code:

from scipy.io import loadmat
loadmat('H1H2_DARM_ERR_avetfcoh.mat')

I get the following error:

Traceback (most recent call last):
  File "mattest.py", line 2, in ?
    loadmat('H1H2_DARM_ERR_avetfcoh.mat')
  File "/usr/lib/python2.3/site-packages/scipy/io/mio.py", line 692, in
loadmat
    thisdict = _loadv5(fid,basename)
  File "/usr/lib/python2.3/site-packages/scipy/io/mio.py", line 631, in
_loadv5
    el, varname = _get_element(fid)
  File "/usr/lib/python2.3/site-packages/scipy/io/mio.py", line 611, in
_get_element
    raise ValueError, "Unknown data type: %d" % raw_tag
ValueError: Unknown data type: 15

(I modified mio.py to return the value of raw_tag in the ValueError
exception.)

I've verified that my MAT file opens in matlab and it has the following
header (copied and pasted from the first line of 'less
H1H2_DARM_ERR_avetfcoh.mat'): MATLAB 5.0 MAT-file, Platform: GLNX86,
Created on: Thu Jun 9 17:38:55 2005

Digging into the Mathworks documentation on the MAT-file format, I see
that data type 15 (in the last line of the Traceback) stands for
Compressed data, which the mio.py source code claims to support, but yet
lacks handling for data type 15 (it stops at 14).  It uses some other
criterion for determining that a file is compressed.

Does anyone know anything more on this subject?  Is this a bug or has
MatlabR14 just decided to change the rules of that game?

MAT-file specification:
http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/matfile_format.pdf

Any help would be appreciated.  Thanks.

Take care,
Nick




More information about the SciPy-User mailing list