list
Переменные в MATLABВ этом примере показано, как использовать Python® list
переменные в MATLAB®.
Вызывать функцию Python, которая берет list
входной параметр, создайте py.list
переменная. Чтобы преобразовать список в переменную MATLAB, вызовите cell
функция, затем вызовите соответствующую функцию преобразования для каждого элемента в списке.
list
Входные параметрыlen
Python функция возвращает количество элементов в контейнере, который включает
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
Используйте индексацию 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
Введите к типам 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
list
Python содержит элементы любого типа и может содержать элементы смешанных типов.
double
MATLAB функция, используемая в этом коде, принимает что все элементы
list
Python являются числовыми.
Предположим, что у вас есть функция 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
ВводЭтот код получает доступ к элементу 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 является 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']