Unable to open scipy.io.savemat mat file

Dickon Humphrey dickon.humphrey at kcl.ac.uk
Wed Jul 8 03:36:41 CDT 2009


David Bateman wrote:
> 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.
>
>   
Thanks for the quick reply. I'll contact scipy with the problem. I have 
reason to believe (but second-hand evidence) that the files produced by 
this version of Ctrax are loadable in Matlab >= 2008a.

Cheers,
Dickon


More information about the Bug-octave mailing list