Примечание
С вызовом функций Python ® связаны накладные расходы. Такое поведение влияет на производительность. MathWorks рекомендует вызывать функции Python в процессе, который является режимом по умолчанию.
MATLAB ® может выполнять сценарии и функции Python в отдельном процессе. Запуск Python в отдельном процессе позволяет:
Используйте в коде Python библиотеки сторонних производителей, несовместимые с MATLAB.
Изолировать процесс MATLAB от сбоев в коде Python.
Для завершения процесса вызовите pyenv функции с помощью "ExecutionMode" аргумент имеет значение "OutOfProcess". Например, предположим, что вы хотите создать это list переменная в среде Python.
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
Чтобы создать это list вне процесса, установите режим выполнения MATLAB в значение "OutOfProcess". MATLAB отображает информацию о текущей среде Python.
pyenv("ExecutionMode","OutOfProcess")
ans =
PythonEnvironment with properties:
Version: "2.7"
Executable: "C:\Python27\pythonw.exe"
Library: "C:\windows\system32\python27.dll"
Home: "C:\Python27"
Status: NotLoaded
ExecutionMode: OutOfProcess
Создайте переменную.
py.list({'Monday','Tuesday','Wednesday','Thursday','Friday'})ans =
Python list with no properties.
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']MATLAB создает процесс с именем MATLABPyHost.
pyenv
ans =
PythonEnvironment with properties:
Version: "2.7"
Executable: "C:\Python27\pythonw.exe"
Library: "C:\windows\system32\python27.dll"
Home: "C:\Python27"
Status: Loaded
ExecutionMode: OutOfProcess
ProcessID: "8196"
ProcessName: "MATLABPyHost"
Примечание
Очистка объекта Python является асинхронной, что означает, что объект Python может оставаться в Python после вызова синхронного вызова. Например, в следующем коде возможно, чтоmyList2 создается до myList разрушен.
myList=py.list;
clear myList
myList2 = py.list;
Размер переменных, передаваемых между Python и MATLAB, ограничен 2 ГБ при вызове функции Python вне процесса. Этот предел применяется к данным плюс вспомогательная информация, передаваемая между процессами.