Matlab

Usar Python desde Matlab

Una de las capacidades menos conocidas de Matlab es la posibilidad de ejecutar directamente código Python desde la consola o un script. Accediendo a ellas de una forma completamente transparente. Lo que permite ampliar rápidamente las capacidades de Matlab con todas las funciones o librerías que existen en Python. En esta entrada se va a mostrar cómo hacer para llamar funciones de Python desde Matlab.

Llamar funciones de Python desde Matlab

La forma de acceder a las funciones u objetos de Python en Matlab es mediante el paquete py. Siendo las propiedades de este paquete las funciones y paquetes de Python. Así, para llamar a una función de Python solamente se tiene que escribir esta como una propiedad de py. Por ejemplo, para imprimir el mensaje “Hola Python” solamente se tiene que escribir la siguiente línea

py.print('¡Hola Python!')

Por otro lado, para acceder a las funciones de una librería de Python no es necesario importar esta, ya que las instaladas son una propiedad de py. Así para comprobar la versión de Python que se está utilizando se puede usar.

py.sys.version
  Python str with no properties.

    2.7.16 (default, Oct 17 2019, 17:14:30) 
    [GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.32.4) (-macos10.15-objc-s

Cambiar la versión de Python empleada en Matlab

En el ejemplo anterior se ha visto que Matlab usa por defecto la instalación de Python del sistema. En el caso de las versiones actuales de macOS Python 2.7. Pero se puede modificar para llamar a cualquier otra instalación. Por ejemplo, una distribución de Anaconda. Obteniendo de esta manera el acceso a todos los paquetes que se instalan por defecto en esta distribución como scikit-learn.

La función de Matlab para cambiar las opciones es pyversion(). Una función que solamente se puede llamar desde si no se ha utilizado Python previamente en la sesión. Por lo que en nuestro caso es necesario reiniciar Matlab. Una vez reiniciado Matlab simplemente se tiene que pasar como parámetro la ruta a la instalación de Python.

pyversion('/anaconda/bin/python'),

A partir de ahora la instalación de Python que usará Matlab será la que le hemos indicado en la ruta. Por ejemplo, se podrá crear un objeto KMeans simplemente escribiendo:

py.sklearn.cluster.KMeans()

Llamar a funciones en archivos de Python

Otra opción, que posiblemente sea la más interesante, es llamar a código que se tenga en Python. Permitiendo reutilizar el trabajo realizado en Matlab. Para lo que se tiene que guardar el código en un archivo con extensión py, archivo que pasa a ser una propiedad del paquete py. Por ejemplo, se puede guardar el siguiente archivo como functions.py y acceder a las funciones simplemente.

suma  = py.functions.sum(2, 3)
cuadrado = py.functions.squared(2)

conclusiones

En esta entrada se han visto los fundamentos para poder utilizar Python en Matlab. Pudiendo así utilizar las librerías de Python en un entorno Matlab. Algo que ofrece múltiples posibilidades.

Imágenes: Pixabay (Michael Schwarzenberger)

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Scikit-Learn

Recent Posts

Errores comunes al interpretar resultados estadísticos

La estadística no suele fallar en los cálculos: falla en la interpretación. El test está…

3 días ago

Dashboard CLV: cuatro modelos, un mismo dataset, conclusiones muy distintas

Los artículos anteriores de esta serie cubrieron cuatro formas de mirar el valor del cliente:…

5 días ago

Curiosidad: Por qué la criptografía habla siempre de Alice y Bob

Quien se acerca a la criptografía descubre enseguida a dos personajes que aparecen en casi…

1 semana ago

Desbalanceo de Clases en Credit Scoring: Por Qué Usamos Ponderación en lugar de Undersampling

En credit scoring el desbalanceo de clases es la norma, no la excepción. En una…

2 semanas ago

Curiosidad: El “bug”, la polilla y la leyenda de Grace Hopper

Cualquiera que programe usa la palabra bug a diario para referirse a un fallo en…

2 semanas ago

BG/BB: el modelo de CLV para compras en períodos discretos

Los dos artículos anteriores de la serie cubrieron BG/NBD, el modelo para negocios donde el…

3 semanas ago

This website uses cookies.