C++ からの MATLAB セッションの開始
これらの例では、C++ プログラムから同期的または非同期的に MATLAB® エンジン セッションを開始する方法を示します。セッションを開始するには、matlab::engine 名前空間で定義されている次のユーティリティ関数のいずれかを使用します。
matlab::engine::startMATLAB— MATLAB セッションを同期的に開始する。matlab::engine::startMATLABAsync— MATLAB セッションを非同期的に開始する。
C++ エンジン プログラムを設定およびビルドする方法の詳細については、Requirements to Build C++ Engine Applicationsを参照してください。
MATLAB セッションの同期的な開始
MATLAB を C++ から同期的に起動します。startMATLAB から MATLABEngine インスタンスへの一意のポインターが返されます。
#include "MatlabEngine.hpp"
void startMLSession() {
using namespace matlab::engine;
// Start MATLAB engine synchronously
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();
}MATLAB セッションの非同期的な開始
MATLAB を C++ から非同期的に起動します。FutureResult::get を使用して、startMATLABAsync から返される MATLABEngine インスタンスへの一意のポインターを取得します。
#include "MatlabEngine.hpp"
void startMLSessionAsync() {
using namespace matlab::engine;
// Start MATLAB engine asynchronously
FutureResult<std::unique_ptr<MATLABEngine>> matlabFuture = startMATLABAsync();
std::unique_ptr<MATLABEngine> matlabPtr = matlabFuture.get();
}起動オプションを使用した MATLAB の起動
サポートされる MATLAB 起動オプションを使用して、MATLAB セッションを開始できます。MATLAB の起動オプションの詳細については、よく使われる起動オプションを参照してください。エンジンでサポートされる起動オプションの詳細については、matlab::engine::MATLABEngine を参照してください。
この例では、-r オプションと matlab.engine.ShareEngine オプションを使用して MATLAB を起動します。各オプションをベクトルの要素として含むベクトルを作成します。
#include "MatlabEngine.hpp"
void startMLOptions() {
using namespace matlab::engine;
// Start MATLAB with -r option
std::vector<String> optionVec;
optionVec.push_back(u"-r");
optionVec.push_back(u"matlab.engine.shareEngine");
std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB(optionVec);
}参考
matlab::engine::startMATLAB | matlab::engine::startMATLABAsync