Примечание
Там наверху сопоставлен с вызыванием функций 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 из процесса. Этот предел применяется к данным плюс поддержка информации, переданной между процессами.