[SciPy-user] mat file problem in linux

Ryan Krauss ryanlists at gmail.com
Fri Oct 14 11:43:24 CDT 2005

I have a *.mat file created by Matlab in Windows.  Scipy in windows
can open this file without a problem.  I am now trying to run the same
code in linux and I get this error:

     12 #load matlab data
     13 #bob=scipy.io.read_array('iobodetest.txt')
---> 14 modeldict=scipy.io.loadmat('tmm_mat_model_params.mat')
     15 bodedict=scipy.io.loadmat('bodetest.mat')
     16 freq=bodedict['freq']

/usr/lib/python2.3/site-packages/scipy/io/mio.py in loadmat(name,
dict, appendmat, basename)
    690     if not (0 in test_vals):       # MATLAB version 5 format
    691         fid.rewind()
--> 692         thisdict = _loadv5(fid,basename)
    693         if dict is not None:
    694             dict.update(thisdict)

/usr/lib/python2.3/site-packages/scipy/io/mio.py in _loadv5(fid, basename)
    634             dict[varname] = el
    635         except EOFError:
--> 636             break
    637     return dict

/usr/lib/python2.3/site-packages/scipy/io/mio.py in _get_element(fid)
    618     # handle miMatrix type
--> 619     el, name = _parse_mimatrix(fid,numbytes)
    620     return el, name

/usr/lib/python2.3/site-packages/scipy/io/mio.py in _parse_mimatrix(fid, bytes)
    499     dclass, cmplx, nzmax =_parse_array_flags(fid)
    500     dims = _get_element(fid)[0]
--> 501     name = ''.join(asarray(_get_element(fid)[0]).astype('c'))
    502     if dclass in mxArrays:
    503         result, unused =_get_element(fid)

TypeError: sequence item 0: expected string, array (scipy) found
WARNING: Failure executing file: <bodetest.py>

In [4]: scipy.__version__
Out[4]: '0.3.2'

The version is the same.  I actually have scipy installed on 3
different linux distros (the 3rd one isn't really working right now). 
The other 2 give this same error.  The *.mat file is small, so I am
attaching it.  This particular linux is on fedora core 3 and I
compiled everything from source and did the python setup.py install
from the 0.3.2 tarball.  This FC3 install in running python 2.3.  The
Windows version that can open the *.mat file is also python 2.3 with
the binaries from the scipy website.  The other linux distro with the
same problem is a Ubuntu Hoary 5.04 with scipy from apt-get following
John Hunter's previous post to this list.  (The one that isn't really
working is running Breezy 5.10.  It gets stuck in a different spot.  I
will look into that.)

So, is there something wrong with this mat file or do I need to do
something different to make them cross-platform?  I guess I thought
matlab took care of that part.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: tmm_mat_model_params.mat
Type: application/octet-stream
Size: 600 bytes
Desc: not available
Url : http://www.scipy.net/pipermail/scipy-user/attachments/20051014/08834298/tmm_mat_model_params-0001.obj

More information about the SciPy-user mailing list