Main Content

MATLABPython의 디폴트 숫자형

기본적으로 MATLAB®은 모든 숫자형 값을 배정밀도 부동소수점 숫자로 저장합니다. 이와 반대로, Python®은 일부 숫자를 기본적으로 정수로 저장합니다. 이러한 차이로 인해 배정밀도 숫자를 입력 인수로 받아야 하는 MATLAB 함수에 정수가 전달될 수 있습니다.

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

x = 4;
y = 4.0;

xy는 모두 double 데이터형입니다. 이제 Python에서 동일하게 변수가 할당되었다고 가정합니다.

x = 4
y = 4.0

xy는 서로 다른 숫자 데이터형입니다.

print(type(x))
<type 'int'>
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 함수로 전달하면 엔진이 오류를 발생시킵니다. 예제는 MatlabExecutionError: 정의되지 않은 함수 항목을 참조하십시오.

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