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, radar signature analysis or gas chromatography, where the front end (GUI) is programmed in C and the back end (analysis) is programmed in MATLAB, thereby shortening development time.
The following topics provide information for using MATLAB engine:
The MATLAB engine operates by running in the background as a separate process from your own program. This offers several advantages:
On UNIX, the MATLAB engine can run on your machine, or on any other UNIX machine on your network, including machines of a different architecture. Thus you could implement a user interface on your workstation and perform the computations on a faster machine located elsewhere on your network. The description of the engOpen function offers further information.
Instead of requiring that all of MATLAB be linked to your program (a substantial amount of code), only a small engine communication library is needed.
The Engine Library
The engine library contains the following routines for controlling the MATLAB computation engine. Their names all begin with the three-letter prefix eng. These tables list all the available engine functions and their purposes.
C Engine Routines
Function | Purpose |
---|---|
Start up MATLAB engine | |
Shut down MATLAB engine | |
Get a MATLAB array from the MATLAB engine | |
Send a MATLAB array to the MATLAB engine | |
Execute a MATLAB command | |
Create a buffer to store MATLAB text output | |
Start a MATLAB engine session for single, nonshared use | |
Determine visibility of MATLAB engine session | |
Show or hide MATLAB engine session |
Fortran Engine Routines
Function | Purpose |
---|---|
Start up MATLAB engine | |
Shut down MATLAB engine | |
Get a MATLAB array from the MATLAB engine | |
Send a MATLAB array to the MATLAB engine | |
Execute a MATLAB command | |
The MATLAB engine also uses the mx prefixed API routines discussed in Creating C Language MEX-Files and Creating Fortran MEX-Files.
Communicating with MATLAB
On UNIX, the engine library communicates with the MATLAB engine using pipes, and, if needed, rsh for remote execution. On Microsoft Windows, the engine library communicates with MATLAB using a Component Object Model (COM) interface. COM and DDE Support (Windows Only), contains a detailed description of COM.
GUI-Intensive Applications
If you have graphical user interface (GUI) intensive applications that execute a lot of callbacks through the MATLAB engine, you should force these callbacks to be evaluated in the context of the base workspace. Use evalin to specify that the base workspace is to be used in evaluating the callback expression, as follows:
engEvalString(ep, "evalin('base', expression)")
Specifying the base workspace in this manner ensures MATLAB processes the callback correctly and returns results for that call.
This does not apply to computational applications that do not execute callbacks.
No comments:
Post a Comment