Read Matlab Matrix in Python

When I try to read the matlab matrix in python, I get the following error

>>> scipy.io.loadmat("Dynamical.mat") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/dist-packages/scipy/io/matlab/mio.py", line 151, in loadmat MR = mat_reader_factory(file_name, appendmat, **kwargs) File "/usr/lib/python2.7/dist-packages/scipy/io/matlab/mio.py", line 105, in mat_reader_factory mjv, mnv = get_matfile_version(byte_stream) File "/usr/lib/python2.7/dist-packages/scipy/io/matlab/miobase.py", line 221, in get_matfile_version % ret) ValueError: Unknown mat file type, version 46, 48 

Dynamical.mat is a file containing a matrix

 % Size = 30 30 % Nonzeros = 252 zzz = zeros(252,3); zzz = [ 1 1 1.4019896354966477e+01 1 2 0.0000000000000000e+00 1 3 0.0000000000000000e+00 ... 
+8
python scipy matlab
source share
1 answer

This question seems to be inactive for a while, but it's nice if you still have to read this .mat file, if you want it to always be in the format you specify:

 def read_mat( file_path ): import numpy as np mat = open(file_path, 'r') mat.next() # % Size = 30 30 length = int(mat.next().split()[-1]) mat.next() # zzz = zeros(18,3) mat.next() # zzz = [ ans = np.array([ map(float, mat.next().split()) for i in xrange(length) ]) mat.close() return ans 
+2
source share

All Articles