mexhost
为 C++ MEX 函数创建主机进程
说明
创建用于运行 C++ MEX 函数的 MEX 主机进程。默认进程名称是 mh
= mexhostMATLABMexHost
。
使用返回的 matlab.mex.MexHost
对象的 feval
方法在 MEX 主机进程中执行 C++ MEX 函数。
使用在 mh
= mexhost("EnvironmentVariables",envVariables
)envVariables
中定义的值来为进程设置环境变量。
示例
在进程外运行 C++ MEX 函数
创建一个主机进程,并在该进程中运行 C++ MEX 函数。
arrayProduct.cpp
C++ MEX 文件包含一个函数的源代码,该函数将数组乘以标量输入并返回生成的数组。打开此文件,并将其保存在 MATLAB® 路径上。使用 mex
命令编译 C++ MEX 源文件。要设置 MEX 编译,请按照编译 C++ MEX 程序中的说明进行操作。
mex arrayProduct.cpp
创建一个主机进程。mexhost
函数返回 matlab.mex.MexHost
对象。
mh = mexhost;
使用 matlab.mex.MexHost
对象的 feval
方法在主机进程中计算 C++ MEX 函数。
result = feval(mh,"arrayProduct",10,[2,4,6,8])
result = 20 40 60 80
查找进程 ID
您可以使用 MexHost
对象来查找由 mexhost
函数创建的进程的标识符。
mh = mexhost; mh.ProcessIdentifier
ans = "13336"
每次调用 mexhost
都会创建一个进程。
为库设置环境变量
将环境变量 envName1
的值设置为 envVal1
,将变量 envName2
的值设置为 envVal2
。
s = ["envName1","envVal1" "envName2","envVal2"]; mh = mexhost("EnvironmentVariables",s)
mh = MexHost with properties: ProcessName: "MATLABMexHost" ProcessIdentifier: "19344" Functions: [0×0 string] EnvironmentVariables: "envName1" "envVal1" "envName2" "envVal2"
输入参数
envVariables
— 环境变量和值
n×2 字符串数组
环境变量和值,指定为 n×2 字符串数组。不支持非 ASCII 字符。第一列是环境变量的名称,第二列是值。
输出参量
mh
— 主机进程
matlab.mex.MexHost
对象
主机进程,以 matlab.mex.MexHost
对象形式返回。使用此进程可在 MATLAB 进程之外运行 C++ MEX 函数。
详细信息
进程生命周期
卸载 C++ MEX 函数
要将所有 C++ MEX 函数从其主机进程中卸载,请调用 clear
mex
或 clear
functions
。要卸载所有主机进程都运行的某特定 C++ MEX 函数,请对函数名称调用 clear
。有关详细信息,请参阅 clear
函数和 Out-of-Process Execution of C++ MEX Functions。
版本历史记录
在 R2019a 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)