MATLAB을 주피터 노트북에서 사용하기

MATLAB을 주피터 노트북에서 사용하기

2022, Mar 30    
MatlabJupyter

Jupyter MATLAB Kernel 설정하기

Written by JunPyo Park

윈도우 환경에서 주피터 노트북과 매트랩 커널을 연결하는 방법을 정리해 보았습니다. 주피터 노트북에 매트랩을 연결하면 GUI 환경에서 편리하게 작업이 가능하고 중간중간 python 코드 셀도 사용이 가능합니다.

매트랩 커널을 사용할 가상환경 생성

관리자 권한으로 터미널 실행

가상환경을 만들기 전에 터미널을 우클릭 하여 관리자 권한으로 실행합니다.

가상환경 만들기

설치된 매트랩 버젼에 따라 호환되는 파이썬 버젼이 다르기 때문에 아래 테이블을 확인해서 호환 되는 파이썬 버젼으로 가상환경을 만들어 주세요

버젼 확인: https://www.mathworks.com/content/dam/mathworks/mathworks-dot-com/support/sysreq/files/python-compatibility.pdf

저는 MATLAB R2021b 가 설치되어 있습니다.

호환되는 파이썬 버젼을 사용하여 matlab 이라는 콘다 가상환경을 만들어 주었습니다.

conda create -n matlab python=3.8
conda activate matlab

가상환경에 주피터 설치

pip install jupyter notebook

만들어진 가상환경에 주피터 노트북을 설치합니다.

그 다음 Python용 MATLAB Engine API를 설치해야 합니다. 설치 과정은 다음과 같습니다.

MATLAB Root 디렉토리 확인

매트랩을 실행하여 명령 창에 matlabroot 라고 입력하면 다음과 같이 경로가 출력됩니다.

Engine API 설치

가상환경을 들어간 터미널에서 matlabroot\extern\engines\python 로 경로를 이동하여 setup.py 파일을 설치 합니다.

cd C:\Program Files\MATLAB\R2021b\extern\engines\python

python setup.py install

Matlab kernel for Jupyter 설치

MATLAB Kernel github repo: https://github.com/Calysto/matlab_kernel

만들어둔 matlab 가상환경에 matlab_kernel을 설치합니다.

pip install matlab_kernel

주피터 노트북 실행

matlab 가상환경에서 주피터 노트북을 실행하면 Matlab 커널이 생긴걸 확인 할 수 있습니다.

Matlab 커널로 파일을 만들면 아래와 같이 연동됨을 확인 할 수 있습니다.

In [1]:
tx = linspace (-8, 8, 41);
ty = tx;
[xx, yy] = meshgrid (tx, ty);
r = sqrt (xx .^ 2 + yy .^ 2) + eps;
tz = sin (r) ./ r;

%plot inline
mesh(tx, ty, tz);

In [2]:
tx
tx =

  1 ~ 15번 열

   -8.0000   -7.6000   -7.2000   -6.8000   -6.4000   -6.0000   -5.6000   -5.2000   -4.8000   -4.4000   -4.0000   -3.6000   -3.2000   -2.8000   -2.4000

  16 ~ 30번 열

   -2.0000   -1.6000   -1.2000   -0.8000   -0.4000         0    0.4000    0.8000    1.2000    1.6000    2.0000    2.4000    2.8000    3.2000    3.6000

  31 ~ 41번 열

    4.0000    4.4000    4.8000    5.2000    5.6000    6.0000    6.4000    6.8000    7.2000    7.6000    8.0000


코드 셀에 %%pyton을 입력하면 파이썬 명령을 실행 가능 합니다.

In [4]:
%%python
print("읽어 주셔서 감사합니다.")
읽어 주셔서 감사합니다.