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.

Utilizar variables dict de Python en MATLAB

En este ejemplo se muestra cómo utilizar las variables de diccionario (dict) de Python® en MATLAB®.

Para llamar a una función de Python que tome un argumento de entrada dict, cree una variable py.dict. Para convertir un dict a una variable de MATLAB, llame a la función struct.

Crear una variable dict de Python

Cree una variable dict para pasarla a una función de Python.

studentID = py.dict(Robert=357,Mary=229,Jack=391)
studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

De forma alternativa, cree una estructura de MATLAB y conviértala a una variable dict.

S = struct("Robert",357,"Mary",229,"Jack",391);
studentID = py.dict(S)
studentID = 
  Python dict with no properties.

    {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}

Utilizar el tipo dict de Python en MATLAB

Para convertir un tipo dict devuelto desde una función de Python a una variable de MATLAB, llame a struct.

Suponga que tiene una función de Python que devuelve elementos de menú y precios en un objeto dict denominado order. Para ejecutar este código en MATLAB, cree esta variable.

order = py.dict(soup=3.57,bread=2.29,bacon=3.91,salad=5.00)
order = 
  Python dict with no properties.

    {'soup': 3.57, 'bread': 2.29, 'bacon': 3.91, 'salad': 5.0}

Convierta order a una variable de MATLAB.

myOrder = struct(order)
myOrder = struct with fields:
     soup: 3.5700
    bread: 2.2900
    bacon: 3.9100
    salad: 5

Muestre el precio del beicon utilizando una sintaxis de MATLAB.

price = myOrder.bacon
price = 3.9100

Muestre el precio del beicon utilizando una sintaxis de Python. El tipo de variable price es doble y puede usarlo en MATLAB.

price = order{"bacon"}
price = 3.9100

Un diccionario tiene pares de claves y valores. Muestre los elementos del menú en la variable order utilizando la función keys de Python.

keys(order)
ans = 
  Python dict_keys with no properties.

    dict_keys(['soup', 'bread', 'bacon', 'salad'])

Muestre todos los precios utilizando la función values de Python.

values(order)
ans = 
  Python dict_values with no properties.

    dict_values([3.57, 2.29, 3.91, 5.0])

Pasar un argumento dict al método de Python

La clase dict de Python tiene un método update. Para ejecutar este código, cree una variable dict de pacientes y resultados de pruebas.

patient = py.dict(name="John Doe", ...
test1= [], ...
test2= [220.0, 210.0, 205.0], ...
test3= [180.0, 178.0, 177.5]);

Convierta el nombre del paciente a una cadena de MATLAB.

string(patient{"name"})
ans = 
"John Doe"

Actualice y muestre los resultados de test1 utilizando el método update.

update(patient,py.dict(test1=[79.0, 75.0, 73.0]))
P = struct(patient);
disp(["test1 results for "+string(patient{"name"})+": "+num2str(double(P.test1))])
test1 results for John Doe: 79  75  73