Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

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 y dict (diccionario) especializados de Python

  • Llamar 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 list[]

MATLAB py.list

>>> ['Robert', 'Mary', 'Joseph']>> py.list({"Robert","Mary","Joseph"})
>>> [[1,2],[3,4]]>> py.list({py.list([1,2]),py.list([3,4])})

Python tuple()

MATLAB py.tuple

>>> ('Robert', 19, 'Biology')>> py.tuple({"Robert",19,"Biology"})

Python dict{}

MATLAB py.dict

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

Consulte también

Temas relacionados