Main Content

Iniciar y detener el motor de MATLAB para Python

Iniciar el motor de MATLAB para Python

  • Inicie Python® en la línea de comandos del sistema operativo.

  • Importe el paquete matlab.engine en su sesión de Python.

  • Inicie un nuevo proceso de MATLAB® llamando a start_matlab. La función start_matlab devuelve un objeto Python eng que le permite pasar datos y llamar a funciones ejecutadas por MATLAB.

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

Iniciar el motor con las opciones de inicio

Inicie el motor y pase las opciones como una cadena de argumento de entrada a matlab.engine.start_matlab. Por ejemplo, inicie MATLAB con el escritorio.

eng = matlab.engine.start_matlab("-desktop")

Puede definir varias opciones de inicio con una sola cadena. Por ejemplo, inicie el escritorio y establezca el formato de visualización numérica en short.

eng = matlab.engine.start_matlab("-desktop -r 'format short'")

También puede iniciar el escritorio después de iniciar el motor.

import matlab.engine
eng = matlab.engine.start_matlab()
eng.desktop(nargout=0)

Iniciar una versión específica del motor de MATLAB

Para iniciar una versión específica del motor de MATLAB, establezca la variable del entorno de PYTHONPATH en la ubicación del paquete. Este código asume que utilizó la configuración que se muestra en la sección anterior. Para establecer PYTHONPATH en Windows para llamar a la versión R2022a de MATLAB, escriba:

sys.path.append("c:\work\matlab22aPy39")

En Linux® o macOS:

sys.path.append("/local/work/matlab22aPy39")

Para comprobar qué versión de MATLAB se ha importado, en Python, escriba:

import matlab
print(matlab.__file__)

Es posible que Python utilice nombres de carpetas diferentes para la instalación. Por ejemplo, Python puede crear una subcarpeta lib/site-packages antes de instalar el motor de MATLAB. Compruebe la carpeta de su sistema que va a utilizar con el comando sys.path.append.

Iniciar el motor de forma asíncrona

Inicie el motor de forma asíncrona. Mientras que MATLAB se inicia, puede introducir comandos en la línea de comandos de Python.

import matlab.engine
future = matlab.engine.start_matlab(background=True)

Cree la instancia de MATLAB para poder realizar cálculos en MATLAB.

eng = future.result()

Ejecutar varios motores

Inicie cada motor por separado. Cada motor se inicia y se comunica con su propio proceso de MATLAB.

eng1 = matlab.engine.start_matlab()
eng2 = matlab.engine.start_matlab()

Detener el motor

Llame a la función exit o quit.

eng.quit()

Si sale de Python mientras un motor aún se está ejecutando, Python detiene automáticamente el motor y su proceso de MATLAB.

Consulte también

Temas relacionados