Доступ к элементам в типах контейнера Python

Чтобы работать с переменной Python® в MATLAB®, преобразуйте объект Python в массив MATLAB, и затем индексируйте в массив по мере необходимости. Можно также сохранить объект Python без преобразования, например, чтобы передать объект методу Python.

container Python обычно является типом sequence (list или tuple) или типом mapping (dict). В Python используйте квадратные скобки [] или функция operator.getitem, чтобы получить доступ к элементу в контейнере. Скалярные аргументы string могут использоваться, чтобы индексировать в контейнер.

Типы последовательностей

Типы последовательности Python ведут себя как массивы ячеек MATLAB.

Получите подпоследовательность с помощью сглаженной круглой скобки индексация ().

li = py.list({1,2,3,4});
res = li(2:3)
res = 

  Python list with no properties.

    [2.0, 3.0]

Используйте фигурные скобки {}, чтобы получить содержимое элемента.

res = li{1}
res =

     1

Отображение типов

Для отображения типов используйте фигурные скобки с аргументом Python key.

patient = py.dict(pyargs('name','John Doe','billing',127));
patient{"billing"}
ans =

   127

Размер и размерности

MATLAB отображает информацию для вашей системы.

p = py.sys.path;
class(p)
ans =

py.list

Индексируйте в p.

p(1)
p{1}
ans = 

  Python list with no properties.

    ['c:\\work']


ans = 

  Python str with no properties.

    c:\work

Осмотрите размерности.

len = length(p)
sz = size(p)
len =

    11


sz =

     1    11

Поддержка массивов

MATLAB преобразовывает тип последовательности в 1-by-N массив.

Использование основанной на нуле индексации для функций Python

Python использует основанную на нуле индексацию; MATLAB использует индексацию на основе одну. Когда вы вызываете функцию Python, такую как py.sys.path, индексным значением первого элемента контейнера Python, x, является int32(0). Индексным значением для последнего элемента является int32(py.len(x)-1).

Связанные примеры

Больше о