Pasar datos de MATLAB a Python
Cuando llama a una función de Python®, MATLAB® convierte los datos de MATLAB en tipos que representan mejor los datos en el lenguaje Python. Para obtener información sobre cómo usar datos de Python en MATLAB, consulte Handle Data Returned from Python Function.
Asignar tipo de MATLAB a tipo de escalar de Python
Tipo de argumento de entrada de MATLAB — | Tipo | Ejemplos |
---|---|---|
|
| Use Python Numeric Variables in MATLAB |
|
| z = complex(1,2); py.cmath.polar(z) ans = Python tuple with no properties. (2.23606797749979, 1.1071487177940904) |
|
| |
|
| |
|
| |
|
| |
escalar de |
| Use Python str Variables in MATLAB |
Valor |
| py.list({string(missing),'Value'}) ans = Python list with no properties. [None, 'Value'] |
|
| |
|
| Utilizar variables dict de Python en MATLAB |
|
| Utilizar variables dict de Python en MATLAB |
table | py.pandas.DataFrame | Use Python Pandas DataFrames in MATLAB |
timetable | py.pandas.DataFrame | Use Python Pandas DataFrames in MATLAB |
datetime |
| Use MATLAB Datetime Types with Python |
duration |
| Use MATLAB Duration Types with Python |
Objeto Python — |
| |
Identificador de función |
| Pass Python Function to Python map Function |
Pasar vectores a Python
Tipo de argumento de entrada de MATLAB — | Tipo de Python resultante |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vector de |
|
vector de |
|
Pasar matrices y arreglos multidimensionales a Python
El lenguaje Python proporciona un protocolo para acceder a buffers de memoria como los datos almacenados en un arreglo de MATLAB. MATLAB 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.
Muchas funciones de Python utilizan directamente el arreglo de MATLAB desde Python sin convertirlo a un tipo nativo de Python. Algunas funciones podrían requerir un tipo específico, como numpy.ndarray
, o modificar datos del arreglo. Es posible que estas funciones acepten el arreglo de MATLAB y copien los datos en el tipo necesario. Otras funciones podrían mostrar un error si no pasa el tipo necesario. Para pasar datos a estas funciones, cree primero el tipo necesario de Python a partir de los datos de MATLAB y, después, páselo a la función de Python. Por ejemplo, para crear un arreglo p
para pasar a una función de Python que requiere datos de tipo numpy.array
, escriba:
p = py.numpy.array(magic(3))
p = Python ndarray: 8 1 6 3 5 7 4 9 2 Use details function to view the properties of the Python object. Use double function to convert to a MATLAB array.
Los arreglos dispersos de MATLAB no son compatibles con Python. Consulte Unsupported MATLAB Types
.
Resolución de problemas relacionados con errores de argumentos
Si una función de Python espera un arreglo multidimensional específico de Python, como numpy.ndarray
, MATLAB muestra un mensaje con consejos sobre cómo proceder. Si el problema pudiera deberse a que pasa una matriz o un arreglo multidimensional como argumento, haga lo siguiente.
Revise la documentación para la función de Python y encuentre el tipo esperado para el argumento.
Cree un objeto de Python de ese tipo en MATLAB y páselo a la función de Python.
Por ejemplo, supongamos que el siguiente código devuelve un error.
a = [1 2; 3 4]; py.pyfunc(a)
Si la documentación de pyfunc
especifica que el tipo esperado es numpy.ndarray
, pruebe esta conversión:
py.pyfunc(numpy.ndarray(a))
Si el error persiste, determine la causa raíz buscando información adicional en la excepción de Python.
Tipos de MATLAB no compatibles
Python no admite estos tipos de MATLAB.
Arreglos multidimensionales
char
ocell
Arreglos dispersos
Arreglos de
struct
Tipos
categorical
Tipos
containers.Map
objetos MATLAB
matlab.metadata.Class
(py
.class
)
Consulte también
Temas
- Use Python Numeric Variables in MATLAB
- Use Python str Variables in MATLAB
- Use Python list Variables in MATLAB
- Use Python tuple Variables in MATLAB
- Utilizar variables dict de Python en MATLAB
- Use MATLAB Datetime Types with Python
- Use MATLAB Duration Types with Python
- Handle Data Returned from Python Function