The MATLAB® engine library contains routines that allow you to call MATLAB from your own programs, using MATLAB as a computation engine. Using the MATLAB engine requires an installed version of MATLAB; you cannot run the MATLAB engine on a machine that only has the MATLAB Compiler Runtime (MCR).
Engine programs are standalone C/C++ or Fortran programs. These programs communicate with a separate MATLAB process via pipes, on UNIX® systems, and through a Microsoft® Component Object Model (COM) interface, on Microsoft Windows® systems. MATLAB provides a library of functions that allows you to start and end the MATLAB process, send data to and from MATLAB, and send commands to be processed in MATLAB.
Some of the things you can do with the MATLAB engine are:
Call a math routine, for example, to invert an array or to compute an FFT from your own program. When employed in this manner, MATLAB is a powerful and programmable mathematical subroutine library.
Build an entire system for a specific task. For example, the front end (user interface) is programmed in C/C++ and the back end (analysis) is programmed in MATLAB.
The MATLAB engine operates by running in the background as a separate process from your own program. Some advantages are:
On UNIX systems, the engine can run on your machine,
or on any other UNIX machine on your network, including machines
of a different architecture. This configuration allows you to implement
a user interface on your workstation and perform the computations
on a faster machine located elsewhere on your network. For more information,
Instead of requiring your program to link to the entire MATLAB program (a substantial amount of code), it links to a smaller engine library.
The MATLAB engine cannot read MAT-files in a format based
on HDF5. These MAT-files
save data using the
save function or are opened using the
argument to the C or Fortran
To run MATLAB engine on the UNIX platform, you must
have the C shell
On UNIX systems, the engine library communicates with the
engine using pipes, and, if needed,
rsh for remote
execution. On Microsoft Windows systems, the engine library
communicates with the engine using a Component Object Model (COM)
interface. For more information, see MATLAB COM Integration.