실행 중인 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_matlab
은 matlab.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')"
디폴트 이름을 사용하여 세션을 시작하거나, 이름을 작은따옴표로 묶어서 지정할 수 있습니다.
참고 항목
matlab.engine.shareEngine
| matlab.engine.isEngineShared
| matlab.engine.engineName
| matlab.engine.connect_matlab
| matlab.engine.find_matlab