Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

MATLAB 데이터를 Python에 전달하기

Python® 함수를 호출할 경우 MATLAB®은 MATLAB 데이터를 Python 언어에서 가장 잘 나타낼 수 있는 유형으로 변환합니다. MATLAB에서의 Python 데이터 사용에 대한 자세한 내용은 Python 함수에서 반환된 데이터 처리하기 항목을 참조하십시오.

Python에 스칼라 값 전달하기

MATLAB 입력 인수 유형 —
스칼라 값만 해당

결과 Python py. 데이터형

예제

double(실수)
single(실수)

float

MATLAB에서 Python 숫자형 변수 사용하기

double(복소수)
single(복소수)

complex

z = complex(1,2);
py.cmath.polar(z)
ans = 
  Python tuple with no properties.

    (2.23606797749979, 1.1071487177940904)

int8
uint8
int16
uint16
int32

int

 

uint32
int64
uint64

int

 

NaN

float("nan")

 

Inf

float("inf")

 

string형 스칼라
char형 벡터

str

MATLAB에서 Python str 변수 사용하기

string형의 <missing>

None

py.list({string(missing),'Value'})
ans = 
  Python list with no properties.

    [None, 'Value']

logical

bool

 

struct

dict

MATLAB에서 Python dict 변수 사용하기
datetime

py.datetime.datetime

Use MATLAB datetime Types with Python
duration

py.datetime.timedelta

Use MATLAB duration Types with Python

Python 객체 — py.type

type

 

Python 함수에 대한 함수 핸들 @py.module.function

module.function

Pass Python Function to Python map Function

Python에 벡터 전달하기

MATLAB 입력 인수 데이터형 —
1×N 벡터

결과 Python 데이터형

double(실수)

array.array('d')

single(실수)

array.array('f')

int8(실수)

array.array('b')

uint8(실수)

array.array('B')

int16(실수)

array.array('h')

uint16(실수)

array.array('H')

int32(실수)

array.array('i')

uint32(실수)

array.array('I')

int64(실수)

array.array('q')

uint64(실수)

array.array('Q')

double(복소수)
single(복소수)

memoryview

logical

memoryview

char 벡터

str

cell형 벡터

tuple

Python에 행렬 및 다차원 배열 전달하기

Python 언어는 MATLAB 배열에 저장된 데이터 같은 메모리 버퍼에 액세스하기 위한 프로토콜을 제공합니다. MATLAB은 데이터를 복사하지 않고 MATLAB과 동일한 프로세스에서 실행하여 MATLAB 배열을 Python 코드에서 바로 읽어 들일 수 있도록 MATLAB 배열에 대해 이 Python 버퍼 프로토콜을 구현합니다.

다수의 Python 함수는 MATLAB 배열을 네이티브 Python 유형으로 변환하지 않고 Python에서 바로 사용합니다. 일부 함수는 numpy.ndarray와 같은 특정 유형을 필요로 하거나 배열에 포함된 데이터를 수정할 수 있습니다. 이러한 함수는 MATLAB 배열을 받고 데이터를 필요한 유형으로 복사할 수 있습니다. 필요한 유형을 전달하지 않을 경우 오류를 표시하는 함수도 있을 수 있습니다. 이러한 함수로 데이터를 전달하려면 먼저 MATLAB 데이터에서 필요한 Python 유형을 만든 다음 Python 함수에 전달합니다. 예를 들어, 배열 p를 만들어 numpy.array 유형의 데이터를 필요로 하는 Python 함수에 전달하려면 다음을 입력하십시오.

p = py.numpy.array(magic(3))
p = 

  Python ndarray:

     8     1     6
     3     5     7
     4     9     2

    Use details function to view the properties of the Python object.

    Use double function to convert to a MATLAB array.

MATLAB 희소 배열은 Python에서 지원되지 않습니다. Unsupported MATLAB Types 항목을 참조하십시오.

인수 오류 해결하기

Python 함수에 numpy.ndarray와 같이 특정 Python 다차원 배열 유형이 필요한 경우, MATLAB에는 진행 방법에 대한 팁이 포함된 메시지가 표시됩니다. 행렬 또는 다차원 배열이 인수로 전달되어 발생한 문제인 경우 다음을 수행하십시오.

  1. Python 함수의 도움말 문서에서 인수에 필요한 유형을 확인합니다.

  2. MATLAB에서 이 유형의 Python 객체를 생성한 후 Python 함수에 전달합니다.

예를 들어, 다음 코드가 오류를 반환한다고 가정해 보겠습니다.

a = [1 2; 3 4];
py.pyfunc(a)

pyfunc의 도움말 문서에 numpy.ndarray 유형이 필요하다고 지정되어 있다면 다음과 같이 변환해 보십시오.

py.pyfunc(numpy.ndarray(a))

오류가 계속되면 Python 예외의 추가 정보를 통해 근본 원인을 확인합니다.

지원되지 않는 MATLAB 유형

다음 MATLAB 유형은 Python에서 지원되지 않습니다.

  • 다차원 char 배열 또는 cell 배열

  • 희소 배열

  • struct 배열

  • categorical

  • table

  • containers.Map 유형

  • MATLAB 객체

  • meta.class (py.class)

관련 예제

세부 정보