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.