Можно подключить MATLAB® Engine для Python® к общему сеансу работы с MATLAB, который уже выполняется на локальном компьютере. Вы также можете подключиться к нескольким общим сеансам работы с MATLAB из одной сессии Python. Можно совместно использовать сеанс работы с MATLAB в любое время во время сеанса или в начале с опцией запуска.
Сначала преобразуйте Сеанс работы с MATLAB в сеанс совместной работы. От вызова MATLAB matlab.engine.shareEngine.
matlab.engine.shareEngine
Запустите Python в приглашении операционной системы. Для подключения к общему сеансу работы с MATLAB вызовите matlab.engine.connect_matlab от Python. Вы можете вызвать любую функцию MATLAB из Python.
import matlab.engine eng = matlab.engine.connect_matlab() eng.sqrt(4.0)
2.0
Вы можете подключиться к сеансу совместной работы по имени. Чтобы найти имя сеанса совместной работы, позвоните matlab.engine.find_matlab от Python.
matlab.engine.find_matlab()
('MATLAB_13232',)matlab.engine.find_matlab возвращает tuple с именами всех общих сеансов работы с MATLAB на локальном компьютере. В этом примере matlab.engine.shareEngine присвоило сеансу совместной работы имя по умолчанию MATLAB_13232, где 13232 является идентификатором процесса MATLAB. Операционная система предоставляет сеансу работы с MATLAB другой идентификатор процесса при каждом запуске MATLAB.
Подключитесь к сеансу работы с MATLAB по имени.
eng.quit()
newEngine = matlab.engine.connect_matlab('MATLAB_13232')
Если вы не задаете имя сеанса совместной работы, matlab.engine.connect_matlab соединяется с первым сеансом с именем в tuple возвращается по matlab.engine.find_matlab.
Из MATLAB преобразуйте Сеанс работы с MATLAB в сеанс совместной работы.
matlab.engine.shareEngine
Запустите Python в приглашении операционной системы. Асинхронное подключение к общему сеансу работы с MATLAB.
import matlab.engine future = matlab.engine.connect_matlab(background=True) eng = future.result()
Вызовите функцию MATLAB из Python.
eng.sqrt(4.0)
2.0
Вы можете подключиться к нескольким общим сеансам работы с MATLAB с Python.
Запуск второго сеанса работы с MATLAB. От вызова MATLAB matlab.engine.shareEngine. Присвойте имя второму сеансу совместной работы. Имя должно быть допустимым именем переменного MATLAB. Для получения информации о допустимых именах переменной см. Раздел «Имена переменных».
matlab.engine.shareEngine('MATLABEngine2')
На Python найдите все общие сеансы работы с MATLAB.
import matlab.engine matlab.engine.find_matlab()
('MATLAB_13232','MATLABEngine2')
Для подключения к общим сеансам работы с MATLAB вызовите функцию matlab.engine.connect_matlab от Python.
eng1 = matlab.engine.connect_matlab('MATLAB_13232')
eng2 = matlab.engine.connect_matlab('MATLABEngine2')
По умолчанию сеансы работы с MATLAB не являются общими. Однако можно запустить MATLAB как сеанс совместной работы с опцией запуска.
Запустите общие сеансы работы с MATLAB в приглашении операционной системы.
matlab -r "matlab.engine.shareEngine"
matlab -r "matlab.engine.shareEngine('MATLABEngine3')"
Можно начать сеанс с именем по умолчанию или задать имя, заключенное в одинарные кавычки.
matlab.engine.connect_matlab | matlab.engine.engineName | matlab.engine.find_matlab | matlab.engine.isEngineShared | matlab.engine.shareEngine