MATLAB에서 Python list
변수 사용하기
이 예제에서는 MATLAB®에서 Python® list
변수를 사용하는 방법을 보여줍니다.
list
입력 인수를 받는 Python 함수를 호출하려면 py.list
변수를 만드십시오. 리스트를 MATLAB 변수로 변환하려면 cell
함수를 호출한 다음, 리스트의 각 요소에 대해 적절한 변환 함수를 호출하십시오.
list
입력 인수를 받는 Python 함수 호출하기
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
을 호출하여 여러 프로그램으로 구성된 P
라는 이름의 Python list
를 만듭니다.
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] 2
요소 하나를 표시합니다.
P{2}
ans = Python str with no properties. R2023a
Python 리스트의 요소 참조하기
MATLAB 인덱싱을 사용하여 리스트의 요소를 표시합니다. 예를 들어 list
의 마지막 요소를 표시해 보겠습니다. MATLAB은 Python list
를 반환합니다.
P(end)
ans = Python list with values: ['R2023a'] Use string, double or cell function to convert to a MATLAB array.
for
루프에서 리스트에 대해 반복할 수도 있습니다.
for n = P disp(n{1}) end
Python str with no properties. MATLAB Runtime Python str with no properties. R2023a
Python list
유형을 MATLAB 유형으로 변환하기
다음 코드는 MATLAB 변수를 사용하여 list
P
의 이름을 표시합니다. 리스트를 변환하려면 cell
을 호출하십시오. 이 리스트는 Python 문자열로 구성되어 있으므로 셀형 배열의 요소를 변환하려면 char
함수를 호출하십시오.
cP = cell(P);
각 셀 요소 이름은 Python 문자열입니다.
class(cP{1})
ans = 'py.str'
Python 문자열을 MATLAB 데이터로 변환합니다.
mlP = string(cell(P));
이름을 표시합니다.
for n = 1:numel(cP) disp(mlP{n}) end
MATLAB Runtime R2023a
MATLAB에서 숫자형의 Python 리스트 사용하기
Python list
는 임의 유형의 요소를 포함하며 유형이 서로 다른 요소를 포함할 수 있습니다. 다음 코드에서 사용되는 MATLAB double
함수는 Python list
의 모든 요소가 숫자형인 것으로 가정합니다.
정수로 구성된 list
인 P
를 반환하는 Python 함수가 있다고 가정하겠습니다. 이 코드를 실행하려면 다음 값으로 변수를 만드십시오.
P = py.list({int32(1), int32(2), int32(3), int32(4)})
P = Python list with values: [1, 2, 3, 4] Use string, double or cell function to convert to a MATLAB array.
값의 숫자형을 표시합니다.
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}});
인덱스 (2,2)
에 있는 요소 'world'
를 표시합니다.
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 values: ['a', 1.0, 'def'] Use string, double or cell function to convert to a MATLAB array.