Main Content

外部プログラミング言語およびシステムと MATLAB の統合

MATLAB® では、他のプログラミング言語との柔軟な双方向の統合が提供されるため、レガシ コードの再利用ができます。プログラミング言語とサポート対象バージョンのリストについては、MATLAB Supported Interfaces to Other Languages を参照してください。

MATLAB からの C/C++ コードの呼び出し

MATLAB は、ユーザーが C/C++ アルゴリズムを MATLAB アプリケーションに統合できるように、以下の機能を提供しています。

  • C/C++ 共有ライブラリのインターフェイスは、実行時にアプリケーションによって動的に読み込まれる関数のコレクションです。共有ライブラリの使用には、複数のライブラリ関数を 1 つのインターフェイスにパッケージ化できるというメリットがあります。さらに、MATLAB はデータ型の変換を管理します。

    • C++ ライブラリ関数の呼び出し - C++ 共有ライブラリ内の関数を呼び出すには、MATLAB からの C++ の呼び出しで説明されている clib 名前空間を使用します。

    • 可能な限り、C 専用のインターフェイスよりも C++ インターフェイスを選択します。C++ サポートの詳細については、これらの制限事項を参照してください。

    • C 共有ライブラリの関数を呼び出すには、関数 calllib を使用します。詳細については、MATLAB からの C の呼び出しを参照してください。この機能は、C 専用のライブラリと共に使用するのが最も効果的ですが、次のような制限があります。

    データ変換とメモリ管理をより細かく制御する場合は、MEX ファイルを記述することを検討してください。

  • MEX ファイルは、MATLAB データ型から C 型への変換を処理する C/C++ アルゴリズムを中心としたラッパー コードです。MEX ファイルを使用すると、MATLAB 共有ライブラリのインターフェイスを使用して関数を呼び出す場合に比べてパフォーマンスが向上します。また、MEX ファイルでは、データ変換およびメモリ管理をより詳細にプログラムで制御できます。

    • MATLAB (MEX ファイル) から呼び出せる C++ 関数の記述は、最新の C++ プログラミング機能と、可能であればデータの共有コピーを使用します。

    • MATLAB (MEX ファイル) から呼び出せる C 関数の記述C 行列 APIを使用し、既存の MEX 関数でサポートされています。MathWorks® では、可能な限り、C MEX ファイル アプリケーションより C++ MEX ファイル アプリケーションを選択することを推奨します。ただし、MEX 関数を R2017b 以前の MATLAB で実行しなければならない場合は、C 行列ライブラリを使って MEX 関数を作成してください。

    • ライブラリ内に複数の関数がある場合、またはパフォーマンスの問題がない場合は、C++ ライブラリ インターフェイスを記述することを検討してください。

こうした機能を使用するには、ライブラリ インターフェイスを作成したり、MEX 関数を記述するための C/C++ のプログラミング スキルが必要です。ただし、結果のライブラリまたは MEX 関数を任意の MATLAB ユーザーに提供することができます。エンド ユーザーは、基礎となる C/C++ 言語実装の詳細を把握することなく、MATLAB 関数のような機能を呼び出します。

C/C++ 言語プログラムから MATLAB を呼び出すには、C++ からの MATLAB の呼び出しまたはC からの MATLAB の呼び出しを参照してください。

MATLAB における他のプログラミング言語のオブジェクトの使用

他のプログラミング言語の関数やオブジェクトがある場合、それらを MATLAB から呼び出すことができます。MATLAB アプリケーションにそれらのオブジェクトを統合するユーザーが、ソフトウェア開発者である必要はありません。ただし、ライブラリに関するサードパーティのドキュメントにアクセスできなければなりません。

MATLAB は、次の言語での関数の呼び出しとオブジェクトの使用をサポートしています。

他のプログラミング言語からの MATLAB の呼び出し

エンジン アプリケーションを使用して、他の言語から MATLAB を呼び出すことができます。MATLAB エンジン API を使用して、独自のアプリケーションから MATLAB 関数を呼び出します。MATLAB には次の言語の API があります。

エンジン アプリケーションを作成するには、MATLAB でサポートされるコンパイラをインストールし、mex コマンドを使用してアプリケーションをビルドします。

MATLAB 関数としての関数の呼び出し

独自の関数を記述し、MEX API を使用してそれらを MATLAB 関数として呼び出すことができます。詳細については、MEX アプリケーションの選択を参照してください。MEX 関数を次の言語で記述することができます。

MEX ファイルを作成するには、MATLAB でサポートされるコンパイラをインストールし、mex コマンドを使用して関数をビルドします。

Web サービスとの通信

MATLAB から Web サービスと通信することができます。

  • MATLAB の RESTful Web サービスの関数によって、プログラマでなくても HTTP GET メソッドと HTTP POST メソッドを使用して、多くの Web サービスにアクセスできます。

  • RESTful Web サービスの関数によってサポートされていない機能については、カスタマイズされた Web アクセス アプリケーションの作成に HTTP インターフェイス クラスを使用します。

  • ご使用の Web サービスが Web サービス記述言語 (WSDL) ドキュメント テクノロジーに基づいている場合は、MATLAB WSDL 関数を使用します。

関連するトピック