MATLAB API in Python

Python으로 Matlab 대부분의 일을 할 수 있기 때문에 Maltab을 사용할 일이 거의 없지만 간혹 Matlab으로 작성된 유물 코드를 급하게 활용해야 할 경우가 발생한다.
이런 경우엔 MATLAB API를 사용하면 Python과 연동하여 Matlab를 사용 할 수 있다.


1. MATLAB API 설치

cd  /${MATLAB}/extern/engines/python
python setup.py install


2. Import MATLAB

import matlab.engine
import numpy as np
from numpy import array, arange
from matlab import double as double_m


3. MATLAB 시작하기

eng = matlab.engine.start_matlab()


4. Python과 동기된 MATLAB GUI 띄우기

eng.desktop(nargout=0)


5. MATLAB에 명령 보내기

eng.workspace['x'] = 3
a = eng.eval("x+3;")

eng.eval("y = 5;", nargout=0)
print(eng.workspace['y'])


6. MATLAB 행렬 Numpy에 저장

x_matlab = eng.linspace(0, 1000, -1, 1000)
x_py = array(x_matlab)

eng.eval('x = linspace(0, 1000, -1, 1000)', nargout=0)
x_py = array(eng.workspace['x'])


7. MATLAB에 경로 추가

eng.addpath('/home/kkk/matlab_utility', nargout=0)


8. MATLAB의 함수 실행

x_randn_matlab = eng.randn(4,4)
x_randn_matlab_T = eng.transpose(x_randn_matlab)


9. Numpy 데이터를 Matlab에서 사용하기

y = arange(16).reshape(4, 4)
y_matlab = double_m(y.tolist(), is_complex=True)
eng.workspace['y'] = y_matlab


10. MATLAB 종료하기

eng.quit()