Модуль MATLAB ® Engine for Python ® можно подключить к общему сеансу MATLAB, который уже выполняется на локальном компьютере. Можно также подключаться к нескольким общим сеансам MATLAB из одного сеанса Python. Сеанс MATLAB можно совместно использовать в любое время во время сеанса или при запуске с помощью опции запуска.
Сначала преобразуйте сеанс MATLAB в общий сеанс. От вызова MATLAB matlab.engine.shareEngine.
matlab.engine.shareEngine
Запустите Python по запросу операционной системы. Для подключения к общему сеансу MATLAB вызовите matlab.engine.connect_matlab от Питона. Из Python можно вызвать любую функцию MATLAB.
import matlab.engine eng = matlab.engine.connect_matlab() eng.sqrt(4.0)
2.0
К общему сеансу можно подключиться по имени. Чтобы найти имя общего сеанса, вызовите matlab.engine.find_matlab от Питона.
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
Из 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 вызовите matlab.engine.connect_matlab от Питона.
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