请注意
与调用Python相关的开销®用功能。这种行为会影响性能。MathWorks建议调用进程内的Python函数,这是默认模式。
MATLAB®可以在单独的进程中运行Python脚本和函数。在单独的进程中运行Python使你能够:
在Python代码中使用一些不与MATLAB兼容的第三方库。
将MATLAB过程与Python代码中的崩溃隔离开来。
要在进程外运行,请调用pyenv
函数与“ExecutionMode”
参数设置为“OutOfProcess”
.例如,假设您想创建这个列表
Python环境中的变量。
['星期一','星期二','星期三','星期四','星期五']
创建这个列表
进程外,设置MATLAB执行模式为“OutOfProcess”
.MATLAB显示有关当前Python环境的信息。
pyenv (“ExecutionMode”,“OutOfProcess”)
ans = PythonEnvironment with properties: Version: "2.7"可执行文件:"C: Python27\pythonw.exe" Library: "C: windows\system32\ Python27 .dll" Home: "C: Python27" Status: NotLoaded ExecutionMode: OutOfProcess .exe
创建变量。
py.list ({“周一”,“星期二”,“星期三”,“星期四”,“星期五”})
ans =没有属性的Python列表。['星期一','星期二','星期三','星期四','星期五']
MATLAB创建了一个名为MATLABPyHost
.
pyenv
ans = PythonEnvironment with properties: Version: "2.7"可执行文件:"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;清晰的myListmyList2 = py.list;
当你调用进程外的Python函数时,Python和MATLAB之间传递的变量的大小限制为2 GB。这个限制适用于在流程之间传递的数据和支持信息。万博1manbetx