Для работы с 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 использует индексацию с нулем; MATLAB использует индексацию на основе одного. Когда вы вызываете функцию Python, такую как py.sys.path
, значение индекса первого элемента массива контейнера Python, x
, есть int32(0)
. Значение индекса для последнего элемента int32(py.len(x)-1)
.
Вы можете получить доступ к данным в объектах контейнера Python, таких как списки и словари, со значениями индекса, подобными ссылкам на элемент в матрице MATLAB. Существуют, однако, способы индексации в матрицы, которые не поддерживаются для этих типов Python.
Функции индексации, не поддерживаемые в MATLAB |
---|
Использование квадратных скобок, |
Индексация в тип контейнера, который не наследует от |
Логическая индексация. |
Доступ к данным в контейнере с произвольным массивом индексов. Индекс должен иметь форму |
Разделенные запятыми списки. |
|