Contenido principal

Pasar datos de MATLAB a Python

Cuando llama a una función de Python® en MATLAB®, la interfaz de Python en MATLAB convierte los datos de MATLAB en tipos que representan mejor los datos en el lenguaje de Python. Para obtener información sobre cómo usar datos de Python en MATLAB, consulte Handle Data Returned from Python Function.

Pasar datos escalares de MATLAB a Python

En MATLAB, cuando pasa datos escalares de MATLAB a una función de Python, la interfaz de Python convierte los datos en los tipos de datos de Python equivalentes.

Tipo de argumento de entrada de MATLAB —
solo valores de escalar

Tipo py. de Python resultante

Ejemplos

double (real)
single (real)

float (predeterminado) o int

Use Python Numeric Variables in MATLAB

De manera predeterminada, la interfaz de Python convierte el tipo double o single en float de Python.
Para valores enteros basados en sugerencias de tipos de Python, la interfaz de Python puede convertir el tipo double o single en int de Python.

double (complejo)
single (complejo)

complex

z = complex(1,2);
py.cmath.polar(z)
ans = 
  Python tuple with values:

    (2.23606797749979, 1.1071487177940904)

int8
uint8
int16
uint16
int32

int

-

uint32
int64
uint64

int

-

NaN

float("nan")

-

Inf

float("inf")

-

escalar de string vector de
char

str

Use Python str Variables in MATLAB

Valor <missing> en string

None

py.list({string(missing),"Value"})
ans = 
  Python list with values:

    [None, 'Value']

logical

bool

-

dictionary

dict

Utilizar variables dict de Python en MATLAB

struct

dict

Utilizar variables dict de Python en MATLAB
tablepy.pandas.DataFrameUse Python Pandas DataFrames in MATLAB
timetablepy.pandas.DataFrameUse Python Pandas DataFrames in MATLAB
datetime

py.datetime.datetime

Use MATLAB Datetime Types with Python
duration

py.datetime.timedelta

Use MATLAB Duration Types with Python

Objeto Python — py.type

type

-

Identificador de función @py.module.function, solo para funciones de Python

module.function

Pass Python Function to Python map Function

Pasar datos de arreglos de MATLAB a Python

En MATLAB, cuando pasa un arreglo de MATLAB como entrada a una función de Python y el módulo NumPy está disponible en el entorno de Python, la interfaz de Python convierte automáticamente el arreglo en un arreglo de NumPy de Python. Si el módulo NumPy no está disponible al pasar un arreglo de MATLAB como entrada a una función de Python, la interfaz de Python trata la entrada de vectores como una entrada de matriz; la interfaz de Python convierte esas entradas en objetos memoryview de Python (desde la versión R2025a).

Antes de R2025a: Cuando pasa un vector de MATLAB con o sin el paquete NumPy a una función de Python, la interfaz de Python convierte el vector en un objeto array.array de Python.

Tipo de arreglo de entrada de MATLAB

Tipo de Python con NumPy resultante

double (real)

numpy.array(dtype=np.float64)

single (real)

numpy.array(dtype=np.float32)

int8 (real)

numpy.array(dtype=np.int8)

uint8 (real)

numpy.array(dtype=np.uint8)

int16 (real)

numpy.array(dtype=np.int16)

uint16 (real)

numpy.array(dtype=np.uint16)

int32 (real)

numpy.array(dtype=np.int32)

uint32 (real)

numpy.array(dtype=np.uint32)

int64 (real)

numpy.array(dtype=np.int64)

uint64 (real)

numpy.array(dtype=np.uint64)

double (complejo)

numpy.array(dtype=np.complex128)

single (complejo)

numpy.array(dtype=np.complex64)

logical

numpy.array(dtype=np.bool)

vector de char

str

vector de cell

tuple

Arreglo datetime

Arreglo numpy.datetime64

Arreglo duration

Arreglo numpy.timedelta64

Matriz char
Arreglo string

Esta conversión no es compatible.

El lenguaje de Python proporciona un protocolo para acceder a buffers de memoria como los datos almacenados en un arreglo de MATLAB. Si NumPy no está instalado, la interfaz de Python implementa este protocolo de buffer de Python para arreglos de MATLAB para que pueda leer arreglos de MATLAB directamente desde el código de Python, que se ejecuta en el mismo proceso que MATLAB, sin copiar datos. Este buffer de datos se convierte después en un objeto memoryview de Python. En este ejemplo, la interfaz de Python convierte el arreglo marr de MATLAB en un objeto memoryview mientras lo pasa al constructor array.array.

marr = [1,2,3];
pyarr = py.array.array('d',marr);

Tipos de MATLAB no compatibles

Python no admite estos tipos de MATLAB.

  • Arreglos multidimensionales char o cell

  • Arreglos dispersos

  • Arreglos de struct

  • categorical

  • containers.Map

  • objetos MATLAB

  • matlab.metadata.Class (py.class)

Consulte también

Temas