MATLAB 및 Python의 디폴트 숫자형
기본적으로 MATLAB®은 모든 숫자형 값을 배정밀도 부동소수점 숫자로 저장합니다. 이와 반대로, Python®은 일부 숫자를 기본적으로 정수로 저장합니다. 이러한 차이로 인해 배정밀도 숫자를 입력 인수로 받아야 하는 MATLAB 함수에 정수가 전달될 수 있습니다.
MATLAB에서 다음과 같이 변수가 할당되었다고 가정합니다.
x = 4; y = 4.0;
x
와 y
는 모두 double
데이터형입니다. 이제 Python에서 동일하게 변수가 할당되었다고 가정합니다.
x = 4 y = 4.0
x
와 y
는 서로 다른 숫자 데이터형입니다.
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
에 해당하는 입력 인수를 함수로 전달할 수 있습니다.