치트시트

Python에서 MATLAB 호출하기

본 참고 자료는 흔한 활용 사례를 다루며, 모든 내용을 포괄하지는 않습니다. 

MATLAB으로 Python을 강화하세요

MATLAB의 고급 툴을 여러분의 Python 워크플로에 직접 통합할 수 있습니다.

설정

MATLAB Engine API for Python 설치

MATLAB Engine API for Python®을 사용하려면 시스템에 MATLAB과 Python이 모두 설치되어 있어야 합니다. 엔진 API를 Python 패키지로 설치합니다.

pip를 사용한 설치

시스템 프롬프트에서: 

$ python -m pip install matlabengine

setup.py를 사용한 설치

시스템 프롬프트에서 setup.py 파일 실행:

$ cd [matlabroot]/extern/engines/ python
 $ python setup.py install

문제를 해결하려면 올바른 권한을 통해(관리자로 실행) PYTHONPATH 및 시스템 경로를 확인합니다. 

MATLAB Engine API

Python에서 MATLAB을 호출하려면 MATLAB Engine API를 사용합니다.

모듈을 가져오고 엔진을 시작합니다.

>>> import matlab.engine
>>> eng = matlab.engine.start_matlab() 

엔진을 통해 함수를 호출합니다.

>>> x = eng.sqrt(42.0) 

여러 출력값을 캡처합니다.

>>> x = eng.gcd(42.0,8.0,nargout=3) 
>>> x = eng.plot(x,y,nargout=0) 

엔진을 중지합니다.

>>> x = eng.exit()

데이터형 변환

데이터형은 가능한 경우 자동으로 변환됩니다.

Python MATLAB
float double
complex complex double
int int64
float(nan) NaN
float(inf) inf
bool logical
str char
dict struct
list cell array
set cell array
tuple cell array

Python에서 MATLAB 배열을 만들어 데이터를 MATLAB 함수로 쉽게 전달할 수 있습니다.

>>> x = matlab. double([1,4,9])

MATLAB 앱 사용

MATLAB 엔진 작업 공간 사용

MATLAB 엔진 작업 공간을 통해 MATLAB 및 Python의 변수에 액세스하여 보다 편리하게 앱을 사용할 수 있습니다.

작업 공간에 변수를 추가합니다.

>>> x = 4.0 >>> eng.workspace['y'] = x 

MATLAB 작업 공간의 변수에 액세스합니다.

>>> x = eng.workspace['y'] 

eval 함수를 사용해 명령문을 실행합니다.

>>> a = eng.eval('sqrt(y)')

Python에서 앱에 대한 명령을 사용해 MATLAB의 앱을 열 수 있습니다.

>>> eng.signalAnalyzer() 
>>> eng.classificationLearner()

Python 패키지 만들기

라이브러리 컴파일러 앱을 사용해 MATLAB 함수에 대한 Python 패키지를 생성합니다.

Python 패키지에서 MATLAB 함수 호출

>>> import PackageName 
>>> pkg = PackageName.initialize() 
>>> result = pkg.Foo() 

패키지 닫기

>>> pkg.terminate()

다른 IDE에서의 MATLAB

Jupyter® 또는 VSCode에서 MATLAB을 사용할 수 있습니다.

MATLAB Integration for Jupyter 설치

예를 들어, Jupyter에서 MATLAB을 실행하기 위한 패키지를 설치합니다.

$ python pip install jupyter-matlab-proxy 
$ install-matlab-kernelspec 

이제 브라우저에서 MATLAB을 사용하거나 MATLAB 커널로 노트북에서 코드를 실행할 수 있습니다.