このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
mxArray
を使用して,R2017b以前のMATLAB®と連携して動作するCプログラムを作成MATLABコマンドラインからユーザー独自のCまたはc++プログラムを組み込み関数のように呼び出すことができます。これらのプログラムは墨西哥人関数と呼ばれ,関数名は墨西哥人ファイル名です。墨西哥人関数はすべてのアプリケーションに適しているわけではありません。MATLABは、コンパイル言語での時間のかかる低水準プログラミングの排除を専門とする、生産性の高い環境です。通常、プログラミングは MATLAB で行ってください。アプリケーションで必要な場合を除き、MEX 関数は使用しないでください。
墨西哥人関数を作成するには,MATLAB APIを使用してプログラムを作成します。これらのライブラリの関数は,墨西哥人関数とワークスペース間でデータの転送をしやすくします。MATLAB APIを選択するには,以下を検討してください。
MathWorksでは,MATLABデータAPIで定義されているように,最新のc++機能を使用して墨西哥人関数を作成することを推奨します。詳細については,c++墨西哥人アプリケーションを参照してください。
墨西哥人関数をR2017b以前のMATLABで実行しなければならない場合,またはC言語での作業が望ましい場合は,C行列APIおよびC墨西哥人APIの関数を使用してください。これらのAPIはMATLABmxArray
データ構造体を使用します。このページの関数とトピックはmxArray
を基にしています。
メモ
C行列APIまたはMATLABデータAPIのいずれかから関数を選択してください。これらのAPIの関数を混用することはできません。
関数墨西哥人
を使用してソースファイルから実行可能プログラムをビルドします。また,墨西哥人ファイルは他のMATLABユーザーと共有できます。
s函数作成の詳細については,仿真软件金宝app®ドキュメンテーションを参照してください。
他のユーザーが作成した墨西哥人関数を呼び出すには,墨西哥人ファイル関数を参照してください。
C / c++プログラムからMATLAB関数を呼び出す場合,いずれかのエンジンAPIを使用します。
C / c++プログラムからMATLABのデータの読み取りおよび書き込みを行うには,MATLAB C APIでの垫ファイルデータの読み取りを使用します。
mexFunction |
C行列APIで作成されたC / c++墨西哥人関数へのエントリポイント |
mexFunctionName |
現在の墨西哥人関数の名前 |
mexAtExit |
墨西哥人関数のクリア時またはMATLABの終了時に呼び出す関数を登録 |
mexCallMATLAB |
MATLAB関数,ユーザー定義関数または墨西哥人関数の呼び出し |
mexCallMATLABWithTrap |
MATLAB関数,ユーザー定義関数,または墨西哥人ファイルの呼び出しと,エラー情報の取得 |
mexEvalString |
呼び出し側ワークスペース内でのMATLABコマンドの実行 |
mexEvalStringWithTrap |
呼び出し側のワークスペースでMATLABコマンドを実行し,エラー情報を取得する |
mexGetVariable |
指定されたワークスペースからの変数のコピー |
mexGetVariablePtr |
別のワークスペースからの変数への読み取り専用ポインター |
mexPutVariable |
墨西哥人関数から指定されたワークスペースへの配列 |
mexGet |
指定されたグラフィックスプロパティの値 |
mexSet |
指定されたグラフィックスプロパティの値の設定 |
mexPrintf |
ANSICPRINTFスタイル出力ルーチン |
mexErrMsgIdAndTxt |
識別子と共にエラーメッセージを表示し,MATLABプロンプトに戻る |
mexWarnMsgIdAndTxt |
識別子を含む警告メッセージ |
mexIsLocked |
墨西哥人ファイルがロックされているかどうかの判別 |
mexLock |
メモリからの墨西哥人ファイルのクリアの防止 |
mexUnlock |
メモリからの墨西哥人ファイルのクリアを許可 |
mexMakeArrayPersistent |
墨西哥人ファイルの完了後も配列を存続させる |
mexMakeMemoryPersistent |
MATLABによって割り当てられたメモリを墨西哥人関数の完了後も存続させる |
この例ではC行列APIでビルドされたarrayProduct
C墨西哥人関数の作成方法を説明します。
墨西哥人関数の例のソースコードへのリンク。
墨西哥人ファイルでのmxArray
の使用。
mxArray
メモリを管理するためのルール。
C行列APIでビルドされた墨西哥人関数を作成する際に考慮すべきc++言語の問題。
関数mexErrMsgIdAndTxt
を使用してエラー情報を出力する。
墨西哥人ファイルプログラムで64ビットファイルI / Oを使用する方法。
墨西哥人ファイルの入力引数から組み込み型のサブクラスを排除する方法。
この例ではC墨西哥人関数の例arrayProduct
をビルドする方法を説明します。
インターリーブされた複素数APIを使用するように墨西哥人ファイルをアップグレード
MATLAB 9.4版本(R2018a)では,インターリーブされた複素数表現をサポートします。
64年ビットAPIを使用するように墨西哥人ファイルをアップグレード
MATLAB 9.2版本(R2017a)では,既定で64ビットAPIを使用して墨西哥人ファイルをビルドします。
グラフィックスオブジェクトを使用するための墨西哥人ファイルのアップグレード
MATLAB 8.4版本(R2014b)では,グラフィックスオブジェクトのハンドルのデータ型が双
から”“オブジェクトに変わります。
この例では,微软®Visual c++®コンパイラを使用して窗口®プラットフォームでビルドした墨西哥人ファイルxtimesy
について,ドキュメントを作成する方法を説明します。
コンパイラ設定およびビルドエラーの診断を補助するため,詳細オプション- vを指定して関数墨西哥人
を呼び出します。
墨西哥人ファイルのコンパイルが失敗した場合の対処方法。
警告とエラーメッセージの詳細情報。
C / c++墨西哥人ファイルをMinGW -w64でコンパイルする際のトラブルシューティングと制限
MinGW-w64コンパイラでビルドされた墨西哥人ファイルのトラブルシューティング。
すべての墨西哥人ファイルにmexFunction
が必要です。
無効な墨西哥人ファイルエラーが発生した場合の対処方法。
最良の結果を得るには,使用しているMATLABバージョンで作成された墨西哥人ファイルを実行します。
別のソースからバイナリ墨西哥人ファイルを取得する場合は,そのファイルが,ファイルを実行するプラットフォーム用にコンパイルされていることを確認してください。
MATLABの単一セッションを墨西哥人ファイルから別のスレッドで呼び出さないでください。
墨西哥人ファイルが原因でセグメンテーション違反またはアサーションが発生した場合の対処方法。
墨西哥人で間違った応答が生成される場合の対処方法。
Microsoft Windowsプラットフォームでのデバッグ
微软Visual Studio®でのデバッグに関する推奨事項。
この例では,Macプラットフォームで墨西哥人ファイルをデバッグする方法を説明します。
この例では,Linux®プラットフォームで墨西哥人ファイルをデバッグする方法を説明します。