Hướng dẫn dùng matlab dictionary python

Main Content

This example shows how to use Python® dictionary [dict] variables in MATLAB®.

To call a Python function that takes a dict input argument, create a py.dict variable. To convert a dict to a MATLAB variable, call the struct function.

Create Python dict Variable

Create a dict variable to pass to a Python function. The pyargs function creates keyword arguments.

studentID = py.dict[pyargs['Robert',357,'Mary',229,'Jack',391]]

studentID = 
  Python dict with no properties.

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

Alternatively, create a MATLAB structure and convert it to a dict variable.

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}

Use Python dict Type in MATLAB

To convert a dict type returned from a Python function to a MATLAB variable, call struct.

Suppose you have a Python function that returns menu items and prices in a dict object named order. To run this code in MATLAB, create this variable.

order = py.dict[pyargs['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}

Convert order to a MATLAB variable.

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

Display the price of bacon using MATLAB syntax.

Display the price of bacon using Python syntax. The type of variable price is double, which you can use in MATLAB.

A dictionary has pairs of keys and values. Display the menu items in the variable order using the Python keys function.

ans = 
  Python dict_keys with no properties.

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

Display all prices using the Python values function.

ans = 
  Python dict_values with no properties.

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

Pass dict Argument to Python Method

The Python dict class has an update method. To run this code, create a dict variable of patients and test results.

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

Convert the patient name to a MATLAB string.

Update and display the results for test1 using the update method.

update[patient,py.dict[pyargs['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

  • Trial Software
  • Trial Software
  • Product Updates
  • Product Updates

Chủ Đề