Test Your C++ Build Environment
Create C++ Example testFeval
To test your installation and environment for building applications using the
MATLAB® Engine API for C++, save this C++ code in a file named
testFeval.cpp
(you can use any name).
#include "MatlabDataArray.hpp" #include "MatlabEngine.hpp" #include <iostream> void callSQRT() { using namespace matlab::engine; // Start MATLAB engine synchronously std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB(); //Create MATLAB data array factory matlab::data::ArrayFactory factory; // Define a four-element typed array matlab::data::TypedArray<double> const argArray = factory.createArray({ 1,4 }, { -2.0, 2.0, 6.0, 8.0 }); // Call MATLAB sqrt function on the data array matlab::data::Array const results = matlabPtr->feval(u"sqrt", argArray); // Display results for (int i = 0; i < results.getNumberOfElements(); i++) { double a = argArray[i]; std::complex<double> v = results[i]; double realPart = v.real(); double imgPart = v.imag(); std::cout << "Square root of " << a << " is " << realPart << " + " << imgPart << "i" << std::endl; } } int main() { callSQRT(); return 0; }
Select Supported C++ Compiler
From the MATLAB command prompt, type:
mex -setup -client engine C++
Select the installed compiler you want to use. For an up-to-date list of supported compilers, see Supported and Compatible Compilers.
Build testFeval
Example
To build the engine application, type this command. The mex
command saves the executable file in the current folder.
mex -v -client engine testFeval.cpp
Set Run-Time Environment
Set the platform-specific run-time environment variable:
Operating System | Variable | Path |
---|---|---|
Windows® |
|
|
macOS |
|
|
Linux® |
|
|
Run testFeval
Example
Call the program:
!testFeval.exe
Here is the output from this program. In this case, MATLAB returns a complex array because one of the numbers in the data array is negative.
Square root of -2 is 0 + 1.41421i Square root of 2 is 1.41421 + 0i Square root of 6 is 2.44949 + 0i Square root of 8 is 2.82843 + 0i
See Also
mex
| matlab::engine::MATLABEngine