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.
Pasar valores de escalar a 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) |
|
| |
|
| |
|
| |
|
| |
|
| Use Python str Variables in MATLAB |
Valor |
| py.list({string(missing),'Value'}) ans = Python list with no properties. [None, 'Value'] |
|
| |
Estructura |
| Utilizar variables dict de Python en 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 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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. Puede 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 que se requiere. Para pasar datos a estas funciones, cree primero el tipo necesario de Python a partir de los datos de MATLAB y, a continuación, 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.
Python no admite arreglos dispersos de MATLAB. 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 ser debido 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 de estructuras
Arreglos dispersos
Tipos
categorical
Tipos
table
Tipos
containers.Map
Objetos de MATLAB
meta.class
(py
.class
)
Ejemplos relacionados
- 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