Create host process for C++ MEX function
Create a host process and run a C++ MEX function in that process.
arrayProduct.cpp C++ MEX file contains
the source code for a function that multiplies an array by a scalar input
and returns the resulting array. Open this file and save it on your
MATLAB® path. Build the C++ MEX source file using the
mex command. To set up the
MEX build, follow the instructions in Build C++ MEX Programs.
Create a host process. The
mexhost function returns a
mh = mexhost;
feval method of the
matlab.mex.MexHost object to evaluate the C++ MEX function in
the host process.
result = feval(mh,"arrayProduct",10,[2,4,6,8])
result = 20 40 60 80
You can use the
MexHost object to find the
identifier of the process created by the
mh = mexhost; mh.ProcessIdentifier
ans = "13336"
Each call to
mexhost creates a process.
Set the value of environment variable
envVal1 and the value of
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— Environment variables and values
Environment variables and values, specified as an n-by-2 string array. Non-ASCII characters are not supported. The first column is the name of the environment variable and the second column is the value.
mh— Host process
Host process, returned as a
Use this process to run a C++ MEX function outside of the MATLAB process.
MATLAB terminates the process when the object returned by
mexhost is destroyed. MATLAB destroys the object when any of the following occur.
The MEX host variable returned by
mexhost goes out of
scope, causing MATLAB to destroy the object.
delete method is called on
the MEX host variable explicitly.
clear function is called on
the MEX host variable and there are no other references to the
clear function is called with any of these
clear classes, or