C からの MATLAB の呼び出し
mxArray を使用して C プログラムから MATLAB® コードを実行するエンジン アプリケーションとは、独自の C/C++ プログラムから MATLAB を呼び出し、MATLAB を計算エンジンとして使用できるプログラムです。C エンジン アプリケーションをビルドするには、mex 関数を呼び出します。
メモ
C++ 用の MATLAB エンジン API は、C 用のエンジン API よりも推奨されます。C++ 用の MATLAB エンジン API には、エンジン アプリケーションを作成するための最新の C++ 機能が含まれています。詳細については、C++ からの MATLAB の呼び出しを参照してください。C 用のエンジン API を削除する予定はありません。
エンジン アプリケーションを使用するには MATLAB がインストールされている必要があります。マシンに MATLAB Runtime しかない場合は MATLAB エンジンを実行できません。
C エンジン アプリケーションをビルドするには、以下が必要です。
C ソース コードの作成経験。C 用のエンジン API およびC 行列 API関数を使用して、C ソース コード ファイルを作成できる。
MATLAB でサポートされているコンパイラ。サポートされているコンパイラの最新の一覧については、サポートされるコンパイラを参照してください。
-client engineオプションを指定してmexビルド スクリプトを使用する。
C 用のエンジン API
Engine | MATLAB エンジンの型 |
engOpen | MATLAB エンジン セッションの開始 |
engOpenSingleUse | 共有されない単独使用のための MATLAB エンジン セッションの開始 |
engClose | MATLAB エンジン セッションの終了 |
engEvalString | 文字列内の式の評価 |
engGetVariable | MATLAB エンジン ワークスペースからの変数のコピー |
engPutVariable | MATLAB エンジン ワークスペースへの変数の配置 |
engGetVisible | MATLAB エンジン セッションの可視性の判断 |
engSetVisible | MATLAB エンジン セッションの表示または非表示 |
engOutputBuffer | MATLAB 出力のバッファーの指定 |
トピック
要件
- Requirements to Build Engine C Applications
Install and configure a compiler and run-time environment so you can build C applications to call MATLAB. - Set Up C Development Environment
Set up a development environment to write C applications that call MATLAB functions.
エンジン アプリケーションの作成
- C および Fortran 用 MATLAB エンジン API
MATLAB を計算エンジンとして使用して、MATLAB を独自の C プログラムおよび Fortran プログラムから呼び出します。 - C アプリケーションからの MATLAB 関数の呼び出し
C エンジン アプリケーションengdemo.cを作成します。 - 既存の MATLAB セッションへの接続
この例では、Windows® プラットフォームで既に実行中の MATLAB セッションにエンジン プログラムを接続する方法を説明します。 - アプリケーション内のコールバック
ベース ワークスペースのコンテキストで評価されるユーザー インターフェイス コールバックを設計します。
エンジン アプリケーションのビルドと実行
- Windows での C エンジン アプリケーションのビルドと実行
この例では、Windows プラットフォーム上でビルド プロセスを検証する方法を説明します。 - macOS での C エンジン アプリケーションのビルドと実行
この例では、macOS プラットフォーム上でビルド プロセスを検証する方法を説明します。 - Linux でのエンジン アプリケーションのビルド
この例では、Linux® プラットフォーム上でビルド プロセスを検証する方法を説明します。
トラブルシューティング
MATLAB エンジンが実行されない場合の対処方法。
C エンジンによって呼び出される MATLAB 関数のデバッグ
エンジン アプリケーションで使用される MATLAB 関数の検証方法。
ユーザーとの対話を行う一部の MATLAB 関数は、エンジン アプリケーションではサポートされていません。
MATLAB ライブラリは、スレッドセーフではありません。