Можно соединить 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 ID процесса MATLAB. Операционная система дает сеансу работы с MATLAB различный ID процесса каждый раз, когда вы запускаете 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