설정
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()