C++ エンジン API
C++ 用の MATLAB® エンジン API は、matlab::engine
名前空間で関数、クラスおよび typedef から構成されています。この API は MATLAB データ API をサポートしており、これによって MATLAB 外で実行されているアプリケーションが MATLAB に依存しないインターフェイスを通して MATLAB データを使用できるようになります。MATLAB データ API の詳細については、MATLAB データ APIを参照してください。
ユーティリティ関数
関数 | 目的 |
---|---|
matlab::engine::startMATLAB | MATLAB セッションを開始する。 |
matlab::engine::startMATLABAsync | MATLAB セッションを非同期的に開始する。 |
matlab::engine::connectMATLAB | 指定された名前を使用するローカル マシン上の共有 MATLAB セッションに接続する。 |
matlab::engine::connectMATLABAsync | 指定された名前を使用するローカル マシン上の共有 MATLAB セッションに非同期的に接続する。 |
matlab::engine::findMATLAB | ローカル マシン上のすべての共有 MATLAB セッションを検索する。 |
matlab::engine::findMATLABAsync | ローカル マシン上のすべての共有 MATLAB セッションを非同期的に検索する。 |
matlab::engine::convertUTF8StringToUTF16String | UTF-8 文字列を UTF-16 文字列に変換する。 |
matlab::engine::convertUTF16StringToUTF8String | UTF-16 文字列を UTF-8 文字列に変換する。 |
matlab::engine::terminateEngineClient | 実行時にエンジンのリソースを解放する |
クラス
クラス | 目的 |
---|---|
matlab::engine::MATLABEngine | C++ から MATLAB 関数を実行する。 |
matlab::engine::FutureResult | 非同期の操作から結果を取得する。 |
matlab::engine::WorkspaceType | MATLAB ワークスペースを BASE または GLOBAL と定義する列挙型クラス |
MATLABEngine メンバー関数
matlab::engine::MATLABEngine
クラスは、次のメンバー関数を定義します。
メンバー関数 | 目的 |
---|---|
feval | 引数が指定された MATLAB® 関数を同期的に評価する。 |
fevalAsync | 引数が指定された MATLAB® 関数を非同期的に評価する。 |
eval | MATLAB® ステートメントを同期的に評価する。 |
evalAsync | MATLAB® ステートメントを非同期的に評価する。 |
getVariable | 変数を MATLAB® ベースまたはグローバル ワークスペースから同期的に取得する。 |
getVariableAsync | 変数を MATLAB® ベースまたはグローバル ワークスペースから非同期的に取得する。 |
setVariable | 変数を MATLAB® ベースまたはグローバル ワークスペースに同期的に配置する。 |
setVariableAsync | 変数を MATLAB® ベースまたはグローバル ワークスペースに非同期的に配置する。 |
getProperty | オブジェクト プロパティ値を取得する。 |
getPropertyAsync | オブジェクト プロパティ値を非同期的に取得する。 |
setProperty | オブジェクト プロパティ値を設定する。 |
setPropertyAsync | オブジェクト プロパティ値を非同期的に設定する。 |
例外クラス
例外 | 原因 |
---|---|
| すべての C++ エンジンの例外の基底クラス。 |
| 関数に MATLAB ランタイム エラーが存在するか、または MATLAB を起動できません。 |
| MATLAB セッションを利用できません。 |
| MATLAB 関数に構文エラーが存在します。 |
| MATLAB 関数またはステートメントに MATLAB ランタイム エラーが存在します。 |
| MATLAB 関数の評価がキャンセルされました。 |
| MATLAB 関数またはステートメントの評価が中断されると、matlab::engine::FutureResult::get からスローされます。 |
| MATLAB 関数の結果を指定された型に変換できません。 |
データ サイズの制限
C++ と MATLAB の間で受け渡しされるデータ配列のサイズは 2 GB に制限されています。この制限は、プロセス間で渡されるデータとサポート情報に適用されます。
複数スレッド環境でのエンジンの使用
C++ 用の MATLAB エンジンは、複数スレッド環境で使用しても問題ありません。共有 MATLAB セッションに以下の接続を行うことができます。
C++ アプリケーションの個別スレッドから異なる共有 MATLAB セッションに接続する。
複数のエンジン アプリケーションから MATLAB の単一セッションに接続する。
同じプロセスの複数のスレッドを使用して単一の共有 MATLAB セッションに接続することはできません。