Main Content

실행 중인 MATLAB 세션에 Python 연결하기

로컬 컴퓨터에서 이미 실행 중인 공유 MATLAB® 세션에 Python®용 MATLAB 엔진을 연결할 수 있습니다. 단일 Python 세션에서 여러 개의 공유 MATLAB 세션에 연결할 수도 있습니다. 세션 중 언제든지 또는 시작 시 시작 옵션을 사용하여 MATLAB 세션을 공유할 수 있습니다.

공유 MATLAB 세션에 연결하기

먼저, MATLAB 세션을 공유 세션으로 변환합니다. MATLAB에서 matlab.engine.shareEngine을 호출합니다.

matlab.engine.shareEngine

운영 체제 프롬프트에서 Python을 시작합니다. 공유 MATLAB 세션에 연결하려면 Python에서 matlab.engine.connect_matlab을 호출하십시오. Python에서 원하는 MATLAB 함수를 호출할 수 있습니다.

import matlab.engine
eng = matlab.engine.connect_matlab()
eng.sqrt(4.0)
2.0

이름으로 공유 세션에 연결할 수 있습니다. 공유 세션의 이름을 찾으려면 Python에서 matlab.engine.find_matlab을 호출하십시오.

matlab.engine.find_matlab()
('MATLAB_13232',)

matlab.engine.find_matlab은 로컬 컴퓨터에 있는 모든 공유 MATLAB 세션의 이름을 포함하는 tuple을 반환합니다. 이 예제에서 matlab.engine.shareEngine은 공유 세션에 디폴트 이름 MATLAB_13232를 부여했습니다. 여기서 13232는 MATLAB 프로세스의 ID입니다. MATLAB을 시작할 때마다 운영 체제에서 MATLAB 세션에 다른 프로세스 ID를 부여합니다.

이름으로 MATLAB 세션에 연결합니다.

eng.quit()
newEngine = matlab.engine.connect_matlab('MATLAB_13232')

공유 세션의 이름을 지정하지 않을 경우, matlab.engine.connect_matlabmatlab.engine.find_matlab에 의해 반환된 tuple에 명명된 첫 번째 세션에 연결합니다.

공유 MATLAB 세션에 비동기식으로 연결하기

MATLAB 세션을 MATLAB에서 공유 세션으로 변환합니다.

matlab.engine.shareEngine

운영 체제 프롬프트에서 Python을 시작합니다. 공유 MATLAB 세션에 비동기식으로 연결합니다.

import matlab.engine
future = matlab.engine.connect_matlab(background=True)
eng = future.result()

Python에서 MATLAB 함수를 호출합니다.

eng.sqrt(4.0)
2.0

여러 개의 공유 MATLAB 세션에 연결하기

Python에서 여러 개의 공유 MATLAB 세션에 연결할 수 있습니다.

두 번째 MATLAB 세션을 시작합니다. MATLAB에서 matlab.engine.shareEngine을 호출합니다. 두 번째 공유 세션에 이름을 지정합니다. 이름은 유효한 MATLAB 변수 이름이어야 합니다. 유효한 변수 이름에 대한 정보는 변수 이름 항목을 참조하십시오.

matlab.engine.shareEngine('MATLABEngine2')

Python에서 공유 MATLAB 세션을 모두 찾습니다.

import matlab.engine
matlab.engine.find_matlab()
('MATLAB_13232','MATLABEngine2')

공유 MATLAB 세션에 연결하려면 Python에서 matlab.engine.connect_matlab을 호출하십시오.

eng1 = matlab.engine.connect_matlab('MATLAB_13232')
eng2 = matlab.engine.connect_matlab('MATLABEngine2')

시작 옵션을 사용하여 공유 MATLAB 세션 시작하기

기본적으로, MATLAB 세션은 공유되지 않습니다. 그러나 시작 옵션을 사용하여 MATLAB을 공유 세션으로 시작할 수 있습니다.

운영 체제 프롬프트에서 공유 MATLAB 세션을 시작합니다.

matlab -r "matlab.engine.shareEngine"
matlab -r "matlab.engine.shareEngine('MATLABEngine3')"

디폴트 이름을 사용하여 세션을 시작하거나, 이름을 작은따옴표로 묶어서 지정할 수 있습니다.

참고 항목

| | | |

관련 항목