主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

実行中のMATLABセッションへのc++の接続

ロ,カルマシンで実行中の共有matlab®セッションにc++エンジンを接続することができます。共有MATLABセッションに接続するには、以下を実行します。

matlab:引擎::connectMATLABmatlab:引擎::connectMATLABAsyncを呼び出す際に共有MATLABセッションの名前を指定しない場合,エンジンは最初に作成された共有MATLABセッションを使用します。使用可能な共有MATLABセッションがない場合,エンジンは共有MATLABセッションを作成し,このセッションに接続します。

c++エンジンプログラムを設定およびビルドする方法の詳細にいては,c++エンジンプログラムのビルドを参照してください。

共有MATLABへの接続

次のサンプルコ,ドは,最初に見,かった共有matlabセッションに接続します。

# include“MatlabEngine.hpp”
void syncConnect(){使用命名空间matlab::engine;//连接共享MATLAB会话std::unique_ptr matlabPtr = connectMATLAB();}

共有MATLABへの非同期的な接続

次のサンプルコ,ドは,最初に見,かった共有matlabセッションに非同期的に接続します。

# include“MatlabEngine.hpp”
void asyncConnect(){使用命名空间matlab::engine;//查找并连接共享MATLAB会话FutureResult> futureMATLAB = connectMATLABAsync();...std::unique_ptr matlabPtr = futureMATLAB.get();}

共有セッションの名前の指定

Matlab関数matlab.engine.shareEngineの実行時に,共有matlabセッションの名前を指定することができます。これにより,matlab:引擎::findMATLABmatlab:引擎::findMATLABAsyncを使用して名前を検索する必要がなくなります。

たとえば,matlabを起動して,共有セッションにmyMatlabEngineという名前を指定します。

matlab -r "matlab.engine. shareengine ('myMatlabEngine')"

次のサンプルコ,ドは,c++からmyMatlabEngineという名前のmatlabセッションに接続します。

メモ

c++コ,ドから接続する前に,名前付きmatlabセッションを開始してください。

# include“MatlabEngine.hpp”
void connectToML(){使用命名空间matlab::engine;//连接命名的共享MATLAB会话开始为:// MATLAB -r " MATLAB .engine. shareengine ('myMatlabEngine')" std::unique_ptr matlabPtr = connectMATLAB(u"myMatlabEngine");}

名前付き共有セッションの検索と接続

名前付きmatlab共有セッションに接続するには,matlab:引擎::findMATLABmatlab:引擎::findMATLABAsyncを使用して利用可能なすべての名前付きmatlab共有セッションの名前を検索します。

次のサンプルコ,ドは,myMatlabEngineという名前のmatlab共有セッションを検索し,見かった場合,それに接続します。

void findNConnect(){使用命名空间matlab::engine;//查找并连接共享的MATLAB会话std::unique_ptr matlabPtr;std::vector names = findMATLAB();std::向量<字符串>::迭代器;it = std::find(names.begin(), names.end(), u"myMatlabEngine");if (it != names.end()) {matlabPtr = connectMATLAB(*it);} //确定引擎是否连接if (matlabPtr){matlab::data::ArrayFactory工厂;matlab::data::CharArray arg = factory.createCharArray("-release");matlab::data::CharArray version = matlabPtr->feval(u"version", arg);std::cout << "Connected to: " << version.toAscii() << std::endl; } else { std::cout << "myMatlabEngine not found" << std::endl; } }

参考

||||

関連するトピック