Используйте Python dict Переменные в MATLAB

В этом примере показано, как использовать словарь Python® (dict) переменные в MATLAB®.

Вызывать функцию Python, которая берет dict входной параметр, создайте py.dict переменная. Преобразовывать dict к переменной MATLAB вызовите struct функция.

Создайте Python dict Переменная

Создайте dict переменная, чтобы передать функции Python. pyargs функция создает аргументы ключевого слова.

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}

В качестве альтернативы создайте структуру MATLAB и преобразуйте ее в 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}

Используйте Python dict Введите в MATLAB

Преобразовывать dict введите возвратился от функции Python до переменной MATLAB, вызовите struct.

Предположим, что у вас есть функция Python, которая возвращает пункты меню и цены в dict возразите названному order. Чтобы запустить этот код в MATLAB, создайте эту переменную.

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}

Преобразуйте order к переменной MATLAB.

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

Отобразите цену на бекон с помощью синтаксиса MATLAB.

price = myOrder.bacon
price = 3.9100

Отобразите цену на бекон с помощью синтаксиса Python. Тип переменной price является двойным, который можно использовать в MATLAB.

price = order{'bacon'}
price = 3.9100

Словарь имеет пары ключей и значений. Отобразите пункты меню в переменной order использование keys Python функция.

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

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

Отобразите все цены с помощью values Python функция.

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

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

Передайте dict Аргумент к методу Python

dict Python класс имеет update метод. Чтобы запустить этот код, создайте dict переменная пациентов и результатов испытаний.

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

Преобразуйте имя пациентов в строку MATLAB.

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

Обновите и отобразите результаты для test1 использование update метод.

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