Main Content

matlab::engine::startMATLABAsync

Start MATLAB asynchronously

Description

FutureResult<std::unique_ptr<MATLABEngine>> startMATLABAsync(const std::vector<String>& options = std::vector<String>())

FutureResult<std::unique_ptr<MATLABEngine>> startMATLABAsync(const matlab::engine::MATLABApplicationMode mode, const std::vector<String>& options = std::vector<String>()) (since R2026a)

Start MATLAB® asynchronously with optional MATLAB startup options. If you do not specify an application mode, MATLAB starts in a separate process. Otherwise, MATLAB starts in the specified application mode. You cannot have an in-process and out-of-process engine in the same application.

Include

Namespace:

matlab::engine
IncludeMatlabEngine.hpp

Parameters

const std::vector<String>& options

Startup options used to launch MATLAB. You can specify multiple startup options. The engine supports all MATLAB startup options, except for the options listed in Unsupported Startup Options. For a list of options, see the platform-specific command matlab (Windows), matlab (macOS), or matlab (Linux).

const matlab::engine::MATLABApplicationMode mode (since R2026a)

Mode in which to start application:

  • MATLABApplicationMode::IN_PROCESS

  • MATLABApplicationMode::OUT_OF_PROCESS

Only one in-process MATLAB startup is allowed per application run. If you call startMATLAB again when the in-process MATLAB session is active, the function returns a pointer to the existing MATLAB.

If you terminate an in-process MATLAB, you cannot restart another MATLAB.

An application can have either an in-process or an out-of-process engine.

For examples, see Start MATLAB Sessions from C++.

Return Value

FutureResult<std::unique_ptr<MATLABEngine>>

A FutureResult object used to get the pointer to the MATLABEngine

Unsupported Startup Options

The engine does not support these MATLAB startup options:

  • -h

  • -help

  • -?

  • -n

  • -e

  • -logfile

For information on MATLAB startup options, see Commonly Used Startup Options.

Examples

expand all

Start MATLAB asynchronously and return a FutureResult object. Use the FutureResult to get a pointer to the MATLABEngine object.

FutureResult<std::unique_ptr<MATLABEngine>> matlabFuture = startMATLABAsync();
...
std::unique_ptr<MATLABEngine> matlabPtr = matlabFuture.get();

Version History

Introduced in R2017b

expand all