주요 콘텐츠

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의 모든 요소가 숫자형인 것으로 가정합니다.

정수로 구성된 listP를 반환하는 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.