Unable to open scipy.io.savemat mat file

David Bateman dbateman at dbateman.org
Tue Jul 7 17:06:23 CDT 2009


Dickon Humphrey wrote:
> Bug report for Octave 3.2.0 configured for i686-pc-mingw32
>
> Description:
> -----------
>
> Octave will not open a mat file saved using scipy.io.savemat. I 
> believe the version of scipy used is 0.7.0, which has recently been 
> reworked. The release notes for scipy 0.7.0 state:
> The Matlab (TM) file readers/writers have a number of improvements:
>
> * default version 5
> * v5 writers for structures, cell arrays, and objects
> * v5 readers/writers for function handles and 64-bit integers
> * new struct_as_record keyword argument to ``loadmat``, which loads
>  struct arrays in matlab as record arrays in numpy
> * string arrays have ``dtype='U...'`` instead of ``dtype=object``
>
> The error I get when opening the attached file is:
>
>> load D66_TH_Dcr2_POLG-RNAi-A2_small.mat
> error: unable to resize object to fewer than 2 dimensions
>
> The code that produces the mat file is the 'WriteMAT' function in the 
> attached python file from an application called Ctrax 
> (http://developer.berlios.de/projects/ctrax/ ).
>

I doubt this file loads in matlab either. Scalars and vectors in matlab 
and octave have 2 dimension and thus the error.. See

octave:1> ndims (1)
ans =  2
octave:2> ndims (ones(1,5))
ans =  2

If the claim of scipy is compatibility with matlab then the mat-files 
saved by scipy should always save scalars and vectors with 2 dimensions, 
so I'd say report the bug to scipy. If scipy does want to do any thing 
about it, then and only then a workaround in octave should be contemplated

D.

-- 
David Bateman                                dbateman at dbateman.org
35 rue Gambetta                              +33 1 46 04 02 18 (Home)
92100 Boulogne-Billancourt FRANCE            +33 6 72 01 06 33 (Mob)



More information about the Bug-octave mailing list