tools - Lea la matriz de Matlab en Python
forsyth ponce computer vision pdf (1)
Esta pregunta parece estar inactiva por un tiempo, pero es bueno dejar una alternativa en caso de que aún necesite leer este archivo .mat
, suponiendo que siempre esté en el formato que especificó:
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
Cuando intento leer una matriz de Matlab en python, aparece el siguiente 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 es un archivo que contiene la matriz
% 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
...