Main Content

Llamar directamente a funcionalidades de Python desde MATLAB

Puede llamar a funcionalidades desde bibliotecas de Python® o ejecutar instrucciones de Python directamente desde MATLAB®.

Acceder a módulos de Python

Para acceder a las bibliotecas de Python, añada el prefijo py. al nombre Python. Por ejemplo:

py.list({'This','is a','list'})      % Call built-in function list
py.textwrap.wrap('This is a string') % Call wrap function in module textwrap

Para obtener más información, consulte Acceder a módulos de Python desde MATLAB: introducción.

Ejecutar código de Python

Para ejecutar instrucciones de Python en el intérprete de Python desde la línea de comandos de MATLAB, utilice la función pyrun. Con esta función, puede ejecutar código que pasa tipos de MATLAB como entrada y devuelve algunas o todas las variables a MATLAB. Por ejemplo, suponga que ha ejecutado esta instrucción en un intérprete de Python.

>>> l = ['A', 'new', 'list']

Para ejecutar la instrucción desde MATLAB, utilice pyrun. Para devolver el resultado a una variable de MATLAB myList, agregue "l" como un argumento de outputs:

myList = pyrun("l = ['A', 'new', 'list']", "l");

Ejecutar scripts de Python

Para llamar a un script de Python desde la línea de comandos de MATLAB, utilice la función pyrunfile. Pasa datos de MATLAB y devuelve variables de la misma manera que con pyrun. Por ejemplo, cree un archivo mklist.py con estas instrucciones:

# Python script file mklist.py: 
s = 'list'
L = ['A', 'new', s]

Ejecute el script desde MATLAB:

myListFile = pyrunfile("mklist.py", "L")
myListFile = 
  Python list with no properties.

    ['A', 'new', 'list']

Acceder a las variables de Python

Cuando utiliza el prefijo py., MATLAB importa el módulo completo y puede acceder a todas las funciones y clases del código de Python. Sin embargo, cuando ejecuta código de Python utilizando las funciones pyrun o pyrunfile, si quiere acceder a los datos de Python, debe devolver de forma explícita los objetos Python a MATLAB utilizando el argumento outvars.

Limitaciones de las funciones pyrun y pyrunfile

Las clases de Python que se definen utilizando pyrun o pyrunfile no se pueden modificar si devuelve una instancia de la clase a MATLAB. Si necesita cambiar las definiciones de clases, reinicie la sesión del intérprete:

terminate(pyenv)
pyenv(ExecutionMode="OutOfProcess")

Como alternativa, reinicie MATLAB para "InProcess".

Las funciones pyrun y pyrunfile no son compatibles con clases con variables locales que inicializan otras variables locales a través de métodos. Para tal uso, cree un módulo y acceda a él con el prefijo py..

Consulte también

|

Temas relacionados

Sitios web externos