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.
.