C++ ビルド環境のテスト
C++ サンプル testFeval
の作成
C++ 用の MATLAB® エンジン API を使用して、アプリケーションをビルドするためのインストールと環境をテストするには、次の C++ コードを testFeval.cpp
という名前のファイル (任意の名前を使用可能) に保存します。
#include "MatlabDataArray.hpp" #include "MatlabEngine.hpp" #include <iostream> void callSQRT() { using namespace matlab::engine; // Start MATLAB engine synchronously std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB(); //Create MATLAB data array factory matlab::data::ArrayFactory factory; // Define a four-element typed array matlab::data::TypedArray<double> const argArray = factory.createArray({ 1,4 }, { -2.0, 2.0, 6.0, 8.0 }); // Call MATLAB sqrt function on the data array matlab::data::Array const results = matlabPtr->feval(u"sqrt", argArray); // Display results for (int i = 0; i < results.getNumberOfElements(); i++) { double a = argArray[i]; std::complex<double> v = results[i]; double realPart = v.real(); double imgPart = v.imag(); std::cout << "Square root of " << a << " is " << realPart << " + " << imgPart << "i" << std::endl; } } int main() { callSQRT(); return 0; }
サポートされている C++ コンパイラの選択
MATLAB コマンド プロンプトで、以下を入力します。
mex -setup -client engine C++
インストールされているコンパイラから使用するものを選択します。サポートされているコンパイラの最新の一覧については、サポートされるコンパイラを参照してください。
testFeval
サンプルのビルド
エンジン アプリケーションをビルドするには、次のコマンドを入力します。mex
コマンドにより、現在のフォルダーに実行可能ファイルが保存されます。
mex -v -client engine testFeval.cpp
ランタイム環境の設定
プラットフォーム固有のランタイム環境変数を設定します。
オペレーティング システム | 変数 | パス |
---|---|---|
Windows® |
|
|
Apple シリコン搭載の macOS |
|
|
Intel® 搭載の macOS |
|
|
Linux® |
|
|
testFeval
サンプルの実行
プログラムを呼び出します。
!testFeval.exe
このプログラムからの出力は以下のようになります。この場合、データ配列の数値の 1 つが負であるため、MATLAB は複素数配列を返します。
Square root of -2 is 0 + 1.41421i Square root of 2 is 1.41421 + 0i Square root of 6 is 2.44949 + 0i Square root of 8 is 2.82843 + 0i
参考
mex
| matlab::engine::MATLABEngine