Python

Leer y guardar archivos de Matlab en Python

Para aquellos que trabajamos al mismo tiempo con Matlab y Python es posible que nos encontremos con la necesidad tanto de leer cómo guardar archivos de Matlab en Python. Archivos binarios los cuales suelen tener la extensión mat. Esto es algo que se puede hacer fácilmente con SciPy.

Crear un archivo mat

En primer lugar, necesitamos crear un archivo mat. Algo que se puede hacer desde Python, pero que vamos a hacer desde Matlab utilizando el siguiente código.

A = [1,2,3;4,5,6;7,8,9];
B = 1:10;
save('example.mat', 'A', 'B', '-mat');

Ejemplo con el que se ha creado un archivo mat llamado example.mat en el que se guarda dos variables.

Lectura los archivos desde Python

La lectura de los archivos Matlab en Python se realiza mediante la función loadmat que se encuentra en la librería scipy.io. Librería que por conveniencia se importa como sio. Así la forma básica para cargar el archivo Matlab en Python es pasando el nombre la ruta al archivo a la función loadmat.

import scipy.io as sio

mat = sio.loadmat('example.mat')

mat['A']
mat['B']
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[ 1  2  3  4  5  6  7  8  9 10]]

Obteniéndose un diccionario en el que se pueden localizar cada una de las variables que se encuentra en el archivo.

En el caso de que solamente queramos cargar un con subconjunto de las variables que se encuentran en el archivo de Matlab se puede indicar estas mediante la propiedad variable_names. Propiedad a la que se le debe pasar una lista con los nombres de las variables. Por ejemplo, para importar solamente la variable A se debería escribir la siguiente línea de código

mat = sio.loadmat('example.mat', variable_names=['A'])

Información de las variables contenidas en el archivo

Puede que no sepamos qué variables contiene el archivo Matlab con el que estemos trabajando. Si no queremos cargar todo el contenido del archivo para saberlo se puede usar la función whosmat() que nos devuelve un listado de las variables en tuplas con el nombre, el tamaño y el tipo de dato contenido. En el caso del archivo que estamos usando de ejemplo se obtiene el siguiente resultado.

sio.whosmat('example.mat')
[('A', (3, 3), 'double'), ('B', (1, 10), 'double')]

Guardar archivos Matlab desde Python

Finalmente, se puede guardar las variables que tengamos en Python en un archivo de Matlab. Para esto se encuentra disponible la función savemat. Función a la que se le debe pasar el nombre del archivo seguido de un diccionario con los datos que se desean guardar. Siendo las claves del diccionario las variables que posteriormente se recuperará en Matlab u otra sesión de Python. Así, para guardar el archivo solamente se tiene que escribir.

sio.savemat('python.mat', {'A1': [0, 1, 2], 'A2': 0})

Conclusiones

En esta entrada se ha visto los fácil que es tanto leer como guardar archivos de Matlab en Python. Algo que nos permite intercambiar información de una forma eficiente entre estas dos herramientas. Siendo esta una alternativa a usar Python desde Matlab como se visto anteriormente.

Imagen de Alexas_Fotos en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: SciPy

Recent Posts

Gini, KS y AUC: Cómo Medir la Calidad de un Modelo de Credit Scoring

Cuando un analista de riesgo presenta un nuevo scorecard ante el comité de dirección, la…

12 horas ago

Curiosidad: De dónde vienen foo, bar y foobar

Si revisáis código o documentación de otros programadores, tarde o temprano os toparéis con dos…

6 días ago

BG/NBD + Gamma/Gamma: el modelo probabilístico para CLV en compras continuas

Los dos artículos anteriores cubrieron el CLV clásico —una fórmula útil pero que trata a…

1 semana ago

Errores habituales al trabajar con DataFrames grandes en Pandas (y cómo evitarlos)

Hay un momento muy concreto en la vida de casi todo análisis: el código que…

2 semanas ago

Champion vs Challenger: Cómo los Bancos Validan Modelos Nuevos antes de Ponerlos en Producción

Has construido un nuevo modelo de credit scoring. Las métricas de validación son mejores que…

2 semanas ago

Cómo Comparar Dos Hipotecas con Todos los Gastos Incluidos

Comparar dos hipotecas parece sencillo: la que tenga el TIN más bajo es la mejor…

3 semanas ago

This website uses cookies.