When I'm trying to read a Matlab matrix into 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
The Dynamical.mat is a file containing the 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
...
This question seems to be inactive for a while, but it is good to let one alternative in case you still need to read this .mat
file, assuming it is always in the format you specified:
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With