Guía práctica

Llamada a MATLAB desde Python

Esta guía de referencia incluye casos prácticos comunes, pero dista de ser exhaustiva.

Optimice Python con MATLAB

Integre herramientas avanzadas de MATLAB directamente en flujos de trabajo de Python.

Configuración

Instalar MATLAB Engine API for Python

Para utilizar MATLAB Engine API for Python®, ambos deben estar instalados en el sistema. Instale MATLAB Engine API en forma de paquete de Python.

Instalar usando pip

Desde la línea de comandos del sistema:

$ python -m pip install matlabengine

Instalar con setup.py

Ejecute el archivo setup.py desde la línea de comandos del sistema:

$ cd [matlabroot]/extern/engines/ python
 $ python setup.py install

En caso de problemas, compruebe los privilegios (ejecutar como administrador), y las rutas PYTHONPATHy del sistema.

MATLAB Engine API

Utilice MATLAB Engine API para llamar a MATLAB desde Python.

Importe el módulo e inicie el motor:

>>> import matlab.engine
>>> eng = matlab.engine.start_matlab() 

Llame a funciones a través del motor:

>>> x = eng.sqrt(42.0) 

Capture múltiples salidas:

>>> x = eng.gcd(42.0,8.0,nargout=3) 
>>> x = eng.plot(x,y,nargout=0) 

Detenga el motor:

>>> x = eng.exit()

Conversión de tipos de datos

Los tipos de datos se convertirán automáticamente cuando sea posible.

Python MATLAB
float double
complex complex double
int int64
float(nan) NaN
float(inf) Inf
bool logical
str char
dict struct
list cell array
set cell array
tuple cell array

Puede crear arrays de MATLAB en Python para pasar datos fácilmente a funciones de MATLAB:

>>> x = matlab. double([1,4,9])

Uso de apps de MATLAB

Utilice el área de trabajo del motor de MATLAB

El área de trabajo del motor de MATLAB se puede utilizar para acceder a variables desde MATLAB y Python, y facilita el uso de apps.

Añada una variable al área de trabajo:

>>> x = 4.0 >>> eng.workspace['y'] = x 

Acceda a la variable desde el área de trabajo de MATLAB:

>>> x = eng.workspace['y'] 

Ejecute instrucciones con la función eval:

>>> a = eng.eval('sqrt(y)')

Puede abrir apps en MATLAB desde Python utilizando el comando correspondiente a la app en cuestión:

>>> eng.signalAnalyzer() 
>>> eng.classificationLearner()

Crear un paquete de Python

Empaquete funciones de MATLAB: Utilice la app Library Compiler para crear un paquete de Python con funciones de MATLAB.

Invoque funciones de MATLAB desde el paquete de Python

>>> import PackageName 
>>> pkg = PackageName.initialize() 
>>> result = pkg.Foo() 

Cierre el paquete

>>> pkg.terminate()

MATLAB en otros IDE

Puede utilizar MATLAB desde Jupyter® o VSCode.

Instalar MATLAB para Jupyter

Por ejemplo, instale el paquete para ejecutar MATLAB desde Jupyter.

$ python pip install jupyter-matlab-proxy 
$ install-matlab-kernelspec 

Ahora puede utilizar MATLAB en un navegador o ejecutar código en Notebook con el kernel de MATLAB.