主要内容

进程外执行python功能

笔记

调用Python会带来开销®进程外的功能。此行为会影响性能。MathWorks建议在进程中调用Python函数,这是默认模式。

MATLAB®可以在单独的进程中运行Python脚本和函数。在单独的进程中运行Python使您能够:

  • 在Python代码中使用一些与MATLAB不兼容的第三方库。

  • 将MATLAB进程与Python代码中的崩溃隔离开来。

若要耗尽进程,请调用皮恩夫“执行模式”参数设置为“进程外”。例如,假设您要创建此列表Python环境中的变量。

[‘星期一’、‘星期二’、‘星期三’、‘星期四’、‘星期五’]

要创建此列表进程外,将MATLAB执行模式设置为“进程外”. MATLAB显示有关当前Python环境的信息。

皮恩夫(“执行模式”,“进程外”)
ans=PythonEnvironment及其属性:版本:“2.7”可执行文件:“C:\Python27\pythonw.exe”库:“C:\windows\system32\Python27.dll”主目录:“C:\Python27”状态:未加载的执行模式:OutOfProcess

创建变量。

py.list({“星期一”,“星期二”,“星期三”,“星期四”,“星期五”})
ans=没有属性的Python列表。[‘星期一’、‘星期二’、‘星期三’、‘星期四’、‘星期五’]

MATLAB创建了一个名为MATLABPyHost.

皮恩夫
ans=PythonEnvironment with properties:Version:“2.7”可执行文件:“C:\Python27\pythonw.exe”库:“C:\windows\system32\Python27.dll”主目录:“C:\Python27”状态:已加载的执行模式:OutOfProcess进程ID:“8196”进程名称:“MATLABPyHost”

笔记

清除Python对象是异步的,这意味着在调用同步调用后Python对象可能会保留在Python中myList2是在之前创建的迈利斯特它被摧毁了。

myList=py.list;清楚的迈利斯特myList2=py.list;

局限性

在进程外调用Python函数时,Python和MATLAB之间传递的变量大小限制为2GB。此限制适用于进程之间传递的数据和支持信息。金宝app

另见