Можно подключить 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