Подключите Python к текущему сеансу работы с MATLAB

Можно подключить MATLAB® Engine для Python® к общему сеансу работы с MATLAB, который уже выполняется на локальном компьютере. Вы также можете подключиться к нескольким общим сеансам работы с MATLAB из одной сессии Python. Можно совместно использовать сеанс работы с MATLAB в любое время во время сеанса или в начале с опцией запуска.

Подключение к общему сеансу работы с 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 в сеанс совместной работы.

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

Вы можете подключиться к нескольким общим сеансам работы с 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 в приглашении операционной системы.

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

Можно начать сеанс с именем по умолчанию или задать имя, заключенное в одинарные кавычки.

См. также

| | | |

Похожие темы