Main Content

Pasar datos aPython

Escriba a asignación de tipoMATLABPython

Al pasar datos como argumentos a, convierte los datos en tipos que mejor representan los datos al idioma.MATLAB®Python®MATLABPython

Tipo de argumento de entrada: solo valores escalaresMATLAB

El tipo resultantePythonpy.

double
single

float

Complejo Complexsingle
double

complex

int8
uint8
int16
uint16
int32

int

uint32
int64
uint64

(sólo versión 2,7)int
long

NaN

float(nan)

Inf

float(inf)

Vector escalarstring
char

str

valor en<missing>string

None

logical

bool

Estructura

dict

objeto —.Pythonpytype

type

identificador de función.@pymodule.function, a funciones sóloPython

module.function

Vector a mappingMATLABPython

Tipo de argumento de entrada:-por VectorMATLAB
1N

El tipo resultantePython

double

array.array('d')

single

array.array('f')

int8

array.array('b')

uint8

array.array('B')

int16

array.array('h')

uint16

array.array('H')

int32

array.array('i')

uint32

array.array('I')

(No soportado para 2,7 en)int64PythonWindows®

array.array('q')

(No soportado para 2,7 en)uint64PythonWindows

array.array('Q')

matriz que contiene valores superiores a 127 (sólo la versión 2,7)char

unicode

logical

memoryview

escalar vectorialchar
string

str

Vectorcell

tuple

Pasando matrices y matrices multidimensionales

Cuando se pasan matrices numéricas o lógicas reales a una función, se convierten automáticamente los datos en un objeto.PythonMATLABPythonmemoryview Si la salida de una función implementa el protocolo de búfer y es real numérica o lógica, a continuación, muestra:PythonPythonMATLAB

  • El tipo realPython

  • Los datos subyacentes

  • La función de conversión correspondiente.MATLAB Utilice esta función para convertir completamente el objeto en una matriz.PythonMATLAB

Por ejemplo, supongamos que se llama a una función en un móduloPython pyModule que devuelve una variable de tipo pyType con estos valores:

p = 
  Python pyType:

     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.

Para convertir a una matriz, escriba:pMATLABP

P = double(p)
P = 3×3          8     1     6      3     5     7      4     9     2 

Si necesita información específica sobre las propiedades de, escriba:Pythonp

details(p)
  py.pyModule.pyType handle with properties:

           T: [1×1 py.pyModule.pyType]
        base: [1×1 py.NoneType]
      ctypes: [1×1 py.pyModule.core._internal._ctypes]
        data: [1×3 py.memoryview]
       dtype: [1×1 py.pyModule.dtype]
       flags: [1×1 py.pyModule.flagsobj]
        flat: [1×1 py.pyModule.flatiter]
        imag: [1×1 py.pyModule.pyType]
    itemsize: [1×1 py.int]
      nbytes: [1×1 py.int]
        ndim: [1×1 py.int]
        real: [1×1 py.pyModule.pyType]
       shape: [1×2 py.tuple]
        size: [1×1 py.int]
     strides: [1×2 py.tuple]

  Methods, Events, Superclasses

Si el módulo proporciona contenido en su atributo, a continuación, vínculos a esa información.Python__doc__MATLAB

El uso de objetos permite leer los datos sin hacer una copia de los datos.PythonmemoryviewPythonMATLABMATLAB Para obtener información sobre los objetos y el protocolo de búfer, busque estos términos en.memoryviewhttps://www.python.org/doc/

no se admiten matrices complejas y dispersas.MATLABPython Ver.Tipos no admitidosMATLAB

Solucionar errores de argumento

Si una función espera un tipo de matriz multidimensional específico, muestra un mensaje con sugerencias sobre cómo proceder.PythonPythonMATLAB Si el problema puede deberse a pasar una matriz o una matriz multidimensional como argumento, haga lo siguiente.

  1. Compruebe la documentación de la función y averigüe el tipo esperado para el argumento.Python

  2. Crear un objeto de ese tipo y pasarlo a la función.PythonMATLABPython

Por ejemplo, supongamos que el siguiente código devuelve un error.

a = [1 2; 3 4]; py.pyfunc(a)

Si la documentación de especifica que el tipo esperado espyfunc pyType, a continuación, intente esta conversión:

py.pyfunc(pyType(a))

Si el error persiste, determine la causa raíz comprobando la información adicional en la excepción.Python

Ejemplos relacionados

Más acerca de