También está el MATLAB Engine for Python de MathWorks sí mismo. Si tiene Matlab, esto podría valer la pena (no lo he probado, pero tiene mucha más funcionalidad que solo leer archivos de Matlab). Sin embargo, no sé si está permitido distribuirlo a otros usuarios (probablemente no haya problema si esas personas tienen Matlab, de lo contrario tal vez NumPy sea el camino correcto).
Además, si usted quiere hacer todo lo básico a sí mismo, MathWorks provides (si los cambios de enlaces, tratan de Google para matfile_format.pdf
o su título MAT-FILE Format
) una documentación detallada sobre la estructura del formato de archivo. No es tan complicado como yo personalmente pensé, pero obviamente, esta no es la forma más fácil de hacerlo. También depende de la cantidad de características de los archivos .mat
que quiera admitir.
He escrito un script "pequeño" (alrededor de 700 líneas) de Python que puede leer algunos archivos básicos .mat
. No soy ni un experto en Python ni un principiante y me llevó cerca de dos días escribirlo (utilizando la documentación de MathWorks vinculada anteriormente). Aprendí muchas cosas nuevas y fue bastante divertido (la mayoría de las veces). Como he escrito el guión de Python en el trabajo, me temo que no puedo publicarla ... Pero puedo dar algunos consejos aquí:
- Primera leer la documentación
- Utilice un editor hexadecimal (como HxD) y buscar en una referencia
.mat
-file desea analizar
- tratar de averiguar el significado de cada byte por el ahorro de los bytes de un archivo txt y anotar cada línea
- uso clases de ahorrar cada dato elemento (como
miCOMPRESSED
, miMATRIX
, mxDOUBLE
o miINT32
)
- La estructura de archivos
.mat
es óptima para guardar los elementos de datos en una estructura de datos de árbol; cada nodo tiene una clase y subnodos
Tutorial oficial de SciPy.io: http://docs.scipy.org/doc/scipy/reference/tutorial/io.html –
scipy no es compatible con v7.3 mat-files (ver notas [aquí] (http : //docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.io.loadmat.html)). Vea la [respuesta de vikrantt] (http://stackoverflow.com/a/19340117/674976) para la solución. – texnic
sin embargo, puede guardar archivos mat como versiones anteriores. ver: http://www.mathworks.com/help/matlab/import_export/mat-file-versions.html (encabezado: 'Guardar en la versión del archivo MAT no predeterminado') – watsonic