주요 콘텐츠

MATLABPython의 디폴트 숫자형

기본적으로 MATLAB®에서 숫자는 배정밀도 유형입니다. 하지만 Python®에서는 소수부가 없는 숫자가 기본적으로 정수형입니다. 이러한 차이로 인해 Python용 MATLAB Engine API를 사용하여 Python에서 MATLAB을 호출할 때 배정밀도 숫자가 필요한 MATLAB 함수에 Python 변수를 입력 인수로 전달하는 경우 먼저 변수의 데이터형을 변환해야 할 수도 있습니다.

그 대신 MATLAB 내부에서 Python 함수로 데이터를 전달하려는 경우 자세한 내용은 MATLAB에서 Python 숫자형 변수 사용하기 항목을 참조하십시오.

MATLAB에서 다음과 같이 변수가 할당되었다고 가정합니다.

x = 4;
y = 4.0;

xy는 모두 double 데이터형입니다. isfloat 함수를 사용하여 데이터형을 확인할 수 있습니다.

fprintf("x is a float: %s\ny is a float: %s",string(isfloat(x)),string(isfloat(y)))
x is a float: true
y is a float: true

이제 Python에서 동일하게 변수가 할당되었다고 가정합니다.

x = 4
y = 4.0

xy는 서로 다른 숫자 데이터형입니다. printtype을 사용하여 x의 데이터형을 확인합니다.

print(type(x))
<type 'int'>

이제 y의 데이터형을 확인합니다.

print(type(y))
<type 'float'>

대부분의 MATLAB 함수는 double 데이터형의 숫자형 입력 인수를 받습니다. 따라서 MATLAB 함수에 대한 입력 인수로 전달하는 숫자가 Python 데이터형 int가 아닌 Python 데이터형 float가 되도록 확실히 하는 것이 가장 좋습니다. 다음과 같이 하면 Python 변수가 부동소수점 숫자가 되도록 확실히 할 수 있습니다.

  • 리터럴을 부동소수점 숫자로 변경합니다. 예를 들어, 4 대신 4.0을 입력합니다.

  • 숫자를 float 데이터형으로 변환합니다. 예를 들어, x = float(4)는 숫자를 float 데이터형으로 형변환합니다.

  • 숫자 또는 시퀀스에서 matlab.double 배열을 만듭니다. 예를 들어, x = matlab.double([1,2,3,4,5])는 Python 정수로 구성된 list에서 MATLAB 데이터형 double로 구성된 배열을 만듭니다.

정수를 double 데이터형의 입력 인수를 받는 MATLAB 함수로 전달하면 Python용 MATLAB Engine API가 오류를 반환합니다. 예제는 MatlabExecutionError: 정의되지 않은 함수 항목을 참조하십시오.

정수를 숫자형 입력 인수로 받는 MATLAB 함수를 호출할 때는 Python 데이터형 int에 해당하는 입력 인수를 함수로 전달할 수 있습니다.

참고 항목

도움말 항목