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