Call MATLAB from C
mxArrayEngine applications are programs that allow you to call MATLAB from your own C/C++ programs, using MATLAB as a computation engine. To build a C engine application, call the
mex function.
Note
The MATLAB Engine API for C++ is recommended over the Engine API for C. The MATLAB Engine API for C++ includes modern C++ features for writing engine applications. For more information, see Call MATLAB from C++. There are no plans to remove the Engine API for C.
Engine applications require an installed version of MATLAB; you cannot run the MATLAB engine on a machine that only has the MATLAB Runtime.
To build a C engine application, you need:
Experience writing C source code. You can create C source code files using Engine API for C and C Matrix API functions.
A compiler supported by MATLAB. For an up-to-date list of supported compilers, see Supported and Compatible Compilers.
Use the
mexbuild script with the-client engineoption.
Engine API for C
Engine | Type for MATLAB engine |
engOpen | Start MATLAB engine session |
engOpenSingleUse | Start MATLAB engine session for single, nonshared use |
engClose | Quit MATLAB engine session |
engEvalString | Evaluate expression in string |
engGetVariable | Copy variable from MATLAB engine workspace |
engPutVariable | Put variable into MATLAB engine workspace |
engGetVisible | Determine visibility of MATLAB engine session |
engSetVisible | Show or hide MATLAB engine session |
engOutputBuffer | Specify buffer for MATLAB output |
Topics
Requirements
- Requirements to Build Engine C Applications
Install and configure a compiler and run-time environment so you can build C applications to call MATLAB. - Set Up C Development Environment
Set up a development environment to write C applications that call MATLAB functions.
Write Engine Applications
- MATLAB Engine APIs for C and Fortran
Call MATLAB from your own C and Fortran programs, using MATLAB as a computation engine. - Call MATLAB Functions from C Applications
Create a C engine applicationengdemo.c. - Attach to Existing MATLAB Sessions
This example shows how to attach an engine program to a MATLAB session on a Windows® platform that is already running. - Callbacks in Applications
Design user interface callbacks to be evaluated in the context of the base workspace.
Build and Run Engine Applications
- Build and Run C Engine Application on Windows
This example shows how to verify the build process on a Windows platform. - Build and Run C Engine Application on macOS
This example shows how to verify the build process on a macOS platform. - Build and Run C Engine Application on Linux
This example shows how to verify the build process on a Linux® platform.
Troubleshooting
What to do when MATLAB engine does not run.
Debug MATLAB Function Called by C Engine
How to verify MATLAB functions used in engine applications.
Some MATLAB functions that interact with the user are not supported in engine applications.
MATLAB libraries are not thread-safe.