Acceder a módulos de Python desde MATLAB: introducción
Puede acceder a todo el contenido estándar de la biblioteca de Python® desde MATLAB®. Igualmente, puede usar la funcionalidad en módulos de terceros o creados por usuarios. Para llamar a una funcionalidad de Python directamente desde MATLAB, añada el prefijo py.
al nombre de la función Python que desea llamar.
Para llamar a contenido en la biblioteca estándar Python, agregue
py.
delante de la función o nombre de la clase de Python.py.list({"This","is a","list"}) % Call built-in function list
Para llamar a contenido en los módulos disponibles, agregue
py.
delante del nombre del módulo de Python seguido del nombre de clase o función de Python.py.textwrap.wrap("This is a string") % Call wrap function in module textwrap
No es necesario importar los módulos para utilizarlos. Sin embargo, puede importar los nombres de Python en su función MATLAB de la misma manera que puede importar contenido en los paquetes de MATLAB. Para obtener más información, consulte Comprensión de los comandos de importación de Python y MATLAB.
MATLAB también proporciona una forma de ejecutar código de Python en el intérprete de Python directamente desde MATLAB. Para obtener más información, consulte Llamar directamente a funcionalidades de Python desde MATLAB.
Objetivos de aprendizaje
Este tutorial explica cómo:
Comprobar la versión de Python de su ordenador
Crear un objeto de Python y llamar a un método en él
Mostrar ayuda para módulos de Python
Crear tipos
list
,tuple
ydict
(diccionario) especializados de PythonLlamar a un método en un objeto de Python con el mismo nombre que una función de MATLAB
Llamar a una funcionalidad desde su módulo de Python
Encontrar ejemplos
Verificar la configuración de Python
Para utilizar Python en MATLAB, debe tener una versión compatible de Python instalada en su ordenador. Asegúrese de que la ruta de Python se incluye en la variable del entorno de la ruta del sistema. Para verificar que tiene una versión compatible de Python, escriba:
pyenv
ans = PythonEnvironment with properties: Version: "3.8" Executable: "C:\Users\aname\AppData\Local\Programs\Python\Python38\pythonw.exe" Library: "C:\Users\aname\AppData\Local\Programs\Python\Python38\python38.dll" Home: "C:\Users\aname\AppData\Local\Programs\Python\Python38" Status: NotLoaded ExecutionMode: OutOfProcess
Si el valor de la propiedad Version
está vacío, no tiene una versión compatible disponible. Para obtener más información acerca de cómo instalar Python, consulte Configurar su sistema para utilizar Python.
Acceder a módulos estándar de la biblioteca de Python en MATLAB
MATLAB interactúa con el intérprete de Python en su ordenador y proporciona acceso a todo el contenido estándar de la biblioteca. Por ejemplo, cree un tipo de datos list
de Python.
res = py.list({"Name1","Name2","Name3"})
res = Python list with values: ['Name1', 'Name2', 'Name3']
MATLAB reconoce los objetos de Python y convierte automáticamente el arreglo de celdas de MATLAB en el tipo de Python adecuado.
Puede llamar a métodos de Python en un objeto. Para mostrar los métodos disponibles para objetos list
, escriba methods(py.list)
. Por ejemplo, actualice la lista res
utilizando la función append
de Python.
res.append("Name4")
res
res = Python list with with values: ['Name1', 'Name2', 'Name3', 'Name4']
Para convertir la variable list
a una variable de MATLAB, llame a string
.
mylist = string(res)
mylist = 1×4 string array 'Name1' 'Name2' 'Name3' 'Name4'
Mostrar la documentación de Python en MATLAB
Puede mostrar el texto de ayuda para las funciones de Python en MATLAB. Por ejemplo:
py.help("list.append")
Help on method_descriptor in list: list.append = append(...) L.append(object) -> None -- append object to end
La finalización con tabulación cuando se escribe py.
no muestra la funcionalidad de Python disponible. Para obtener más información, consulte Help for Python Functions.
Crear tipos List, Tuple y Dictionary
Esta tabla muestra las instrucciones para crear tipos list
, tuple
y dict
. Las instrucciones de la izquierda se ejecutan desde el intérprete de Python. Las instrucciones de la derecha son instrucciones de MATLAB.
Python | MATLAB |
---|---|
>>> ['Robert', 'Mary', 'Joseph'] | >> py.list({"Robert","Mary","Joseph"}) |
>>> [[1,2],[3,4]] | >> py.list({py.list([1,2]),py.list([3,4])}) |
Python | MATLAB |
---|---|
>>> ('Robert', 19, 'Biology') | >> py.tuple({"Robert",19,"Biology"}) |
Python | MATLAB |
---|---|
>>> {'Robert': 357, 'Joe': 391, 'Mary': 229} | >> py.dict(Robert=357,Mary=229,Joe=391) |
Orden de precedencia de métodos y funciones
Si una clase de Python define un método con el mismo nombre que un método de conversión de MATLAB para tipos de Python, MATLAB llama al método de Python. Esto significa que no puede llamar al método de conversión de MATLAB en un objeto de esa clase.
Por ejemplo, si una clase de Python define un método char
, esta instrucción llama al método de Python.
char(obj)
Para utilizar la función char
de MATLAB, escriba:
char(py.str(obj))
Acceder a otros módulos de Python
Puede utilizar su propio código de Python y módulos de terceros en MATLAB. El contenido debe estar en la ruta de Python. La instalación de un módulo de terceros pone el contenido en la ruta de Python. Si crea módulos propios, es responsable de ponerlos en la ruta.
Para ver un ejemplo, consulte Llamar a un módulo de Python definido por el usuario.
Ejemplos de Python
Para ver código de ejemplo, puede abrir Live Editor de MATLAB y buscar en ejemplos destacados, en la página Llamar a Python desde MATLAB. Para obtener información sobre cómo buscar ejemplos de MATLAB, consulte Ejemplos de código de MATLAB.
Para ver un ejemplo de uso de un conjunto de datos online, consulte esta publicación de blog de MathWorks.