Main Content

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

C MEX ファイル アプリケーション

mxArray を使用して、R2017b 以前の MATLAB® と連携して動作する C プログラムを作成

MATLAB コマンド ラインからユーザー独自の C または C++ プログラムを組み込み関数のように呼び出すことができます。これらのプログラムは MEX 関数と呼ばれ、関数名は MEX ファイル名です。MEX 関数はすべてのアプリケーションに適しているわけではありません。MATLAB は、コンパイル言語での時間のかかる低水準プログラミングの排除を専門とする、生産性の高い環境です。通常、プログラミングは MATLAB で行ってください。アプリケーションで必要な場合を除き、MEX 関数は使用しないでください。

MEX 関数を作成するには、MATLAB API を使用してプログラムを作成します。これらのライブラリの関数は、MEX 関数とワークスペース間でデータの転送をしやすくします。MATLAB API を選択するには、以下を検討してください。

  • MathWorks では、MATLAB データ APIで定義されているように、最新の C++ 機能を使用して MEX 関数を作成することを推奨します。詳細については、C++ MEX アプリケーションを参照してください。

  • MEX 関数を R2017b 以前の MATLAB で実行しなければならない場合、または C 言語での作業が望ましい場合は、C 行列 APIおよび C MEX API の関数を使用してください。これらの API は MATLAB mxArray データ構造体を使用します。このページの関数とトピックは mxArray を基にしています。

メモ

C 行列 API または MATLAB データ API のいずれかから関数を選択してください。これらの API の関数を混用することはできません。

関数 mex を使用してソース ファイルから実行可能プログラムをビルドします。また、MEX ファイルは他の MATLAB ユーザーと共有できます。

S-Function 作成の詳細については、Simulink® ドキュメンテーションを参照してください。

他のユーザーが作成した MEX 関数を呼び出すには、MEX ファイル関数を参照してください。

C/C++ プログラムから MATLAB 関数を呼び出す場合、いずれかのエンジン API を使用します。

C/C++ プログラムから MATLAB のデータの読み取りおよび書き込みを行うには、MATLAB C API での MAT ファイル データの読み取りを使用します。

関数

mexMEX 関数またはエンジン アプリケーションのビルド
dbmexUNIX プラットフォーム上で MEX ファイルのデバッグを有効にする

C MEX API

mexFunctionC 行列 API で作成された C/C++ MEX 関数へのエントリ ポイント
mexFunctionName現在の MEX 関数の名前
mexAtExitMEX 関数のクリア時または MATLAB の終了時に呼び出す関数を登録
mexCallMATLABMATLAB 関数、ユーザー定義関数または MEX 関数の呼び出し
mexCallMATLABWithTrapMATLAB 関数、ユーザー定義関数、または MEX ファイルの呼び出しと、エラー情報の取得
mexEvalString呼び出し側ワークスペース内での MATLAB コマンドの実行
mexEvalStringWithTrap呼び出し側のワークスペースで MATLAB コマンドを実行し、エラー情報を取得する
mexGetVariable指定されたワークスペースからの変数のコピー
mexGetVariablePtr別のワークスペースからの変数への読み取り専用ポインター
mexPutVariableMEX 関数から指定されたワークスペースへの配列
mexGet指定されたグラフィックス プロパティの値
mexSet指定されたグラフィックス プロパティの値の設定
mexPrintfANSI C PRINTF スタイル出力ルーチン
mexErrMsgIdAndTxt識別子と共にエラー メッセージを表示し、MATLAB プロンプトに戻る
mexWarnMsgIdAndTxt識別子を含む警告メッセージ
mexIsLockedMEX ファイルがロックされているかどうかの判別
mexLockメモリからの MEX ファイルのクリアの防止
mexUnlockメモリからの MEX ファイルのクリアを許可
mexMakeArrayPersistentMEX ファイルの完了後も配列を存続させる
mexMakeMemoryPersistentMATLAB によって割り当てられたメモリを MEX 関数の完了後も存続させる

トピック

C MEX 関数の記述

MEX ファイルの共有

トラブルシューティング

ビルド エラー

実行時エラー

デバッグ