exponenta event banner

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

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

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

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

Питон 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 для создания Python list программ с именами 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 возвращает Python list.

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

Преобразовать Python list Тип для типов 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

Питон 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);

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

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

     1     2     3     4

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

Этот код обращается к элементу Python list переменная, содержащая 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']