Использование языка Python list Переменные в MATLAB

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

Чтобы вызвать функцию Python, которая принимает list входной параметр, создайте py.list переменная. Чтобы преобразовать список в переменный MATLAB, вызовите cell затем вызовите соответствующую функцию преобразования для каждого элемента в списке.

Вызовите функцию Python, которая принимает list Входные параметры

The Python len функция возвращает количество элементов в контейнере, которое включает в себя list объект.

py.help('len')
Help on built-in function len in module builtins:

len(obj, /)
    Return the number of items in a container.

Функции os.listdir для создания list Python программ с именем P.

P = py.os.listdir("C:\Program Files\MATLAB");
class(P)
ans = 
'py.list'

Отображение количества программ.

py.len(P)
ans = 
  Python int with properties:

    denominator: [1×1 py.int]
           imag: [1×1 py.int]
      numerator: [1×1 py.int]
           real: [1×1 py.int]

    7

Отобразите один элемент.

P{2}
ans = 
  Python str with no properties.

    R2016b

Индекс в список Python

Используйте индексацию MATLAB для отображения элементов в списке. Для примера отобразите последний элемент в list. MATLAB возвращает list Python.

P(end)
ans = 
  Python list with no properties.

    ['R2020a']

Можно также выполнить итерацию по списку в for цикл.

for n = P
    disp(n{1})
end
  Python str with no properties.

    R2014b

  Python str with no properties.

    R2016b

  Python str with no properties.

    R2017b

  Python str with no properties.

    R2018b

  Python str with no properties.

    R2019a

  Python str with no properties.

    R2019b

  Python str with no properties.

    R2020a

Преобразуйте list Python Тип в типы MATLAB

Этот код отображает имена в list P использование переменного MATLAB. Функции cell для преобразования списка. Список составлен из строк на Python, поэтому вызывайте char функция для преобразования элементов массива ячеек.

cP = cell(P);

Каждое имя элемента камеры является строкой Python.

class(cP{1})
ans = 
'py.str'

Преобразуйте строки Python в данные MATLAB с помощью char функция.

cellP = cellfun(@char,cell(P),'UniformOutput',false);

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

for n = 1:numel(cP)
    disp(cellP{n})
end
R2014b
R2016b
R2017b
R2018b
R2019a
R2019b
R2020a

Используйте список числовых типов Python в MATLAB

A Python- list содержит элементы любого типа и может содержать элементы смешанных типов. Система MATLAB double функция, используемая в этом коде, принимает, что все элементы Python list являются числовыми.

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

P = py.list({int32(1), int32(2), int32(3), int32(4)})
P = 
  Python list with no properties.

    [1, 2, 3, 4]

Отображение числового типа значений.

class(P{1})
ans = 
'py.int'

Преобразование P в массив ячеек MATLAB.

cP = cell(P);

Преобразуйте массив ячеек в массив double MATLAB.

A = cellfun(@double,cP)
A = 1×4

     1     2     3     4

Чтение элемента вложенных list Напечатать

Этот код обращается к элементу массива list Python переменная, содержащая list элементы. Предположим, что у вас это list.

matrix = py.list({{1, 2, 3, 4},{'hello','world'},{9, 10}});

Отобразите 'world' элемента, который находится под индексом (2,2).

disp(char(matrix{2}{2}))
world

Отображение ступенчатой области значений элементов Python

Если вы используете срезание для доступа к элементам массива объекта Python, формат на Python следующий start:stop:step. В MATLAB синтаксис имеет вид start:step:stop.

li = py.list({'a','bc',1,2,'def'});
li(1:2:end)
ans = 
  Python list with no properties.

    ['a', 1.0, 'def']