主要内容

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

C墨西哥人ファイルアプリケーション

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での垫ファイルデータの読み取りを使用します。

関数

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

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墨西哥人関数の記述

Cソース墨西哥人ファイルの作成

この例ではC行列APIでビルドされたarrayProductC墨西哥人関数の作成方法を説明します。

墨西哥人関数のソースコード例の表

墨西哥人関数の例のソースコードへのリンク。

MATLABデータ

墨西哥人ファイルでのmxArrayの使用。

メモリ管理の問題

mxArrayメモリを管理するためのルール。

C行列APIを使用したc++墨西哥人関数の作成

C行列APIでビルドされた墨西哥人関数を作成する際に考慮すべきc++言語の問題。

C墨西哥人ファイルでのエラー処理

関数mexErrMsgIdAndTxtを使用してエラー情報を出力する。

墨西哥人ファイルでの大規模なファイルI / Oの処理

墨西哥人ファイルプログラムで64ビットファイルI / Oを使用する方法。

最派生クラスのテスト

墨西哥人ファイルの入力引数から組み込み型のサブクラスを排除する方法。

墨西哥人ファイルの共有

墨西哥人ファイルのビルド情報のドキュメント化

この例では,微软®Visual c++®コンパイラを使用して窗口®プラットフォームでビルドした墨西哥人ファイルxtimesyについて,ドキュメントを作成する方法を説明します。

トラブルシューティング

ビルドエラー

墨西哥人エラー時のヘルプの参照

コンパイラ設定およびビルドエラーの診断を補助するため,詳細オプション- vを指定して関数墨西哥人を呼び出します。

墨西哥人ファイルのコンパイルの失敗

墨西哥人ファイルのコンパイルが失敗した場合の対処方法。

墨西哥人APIの非互換のトラブルシューティング

警告とエラーメッセージの詳細情報。

C / c++墨西哥人ファイルをMinGW -w64でコンパイルする際のトラブルシューティングと制限

MinGW-w64コンパイラでビルドされた墨西哥人ファイルのトラブルシューティング。

シンボルmexFunctionが未解決または未定義

すべての墨西哥人ファイルにmexFunctionが必要です。

実行時エラー

無効な墨西哥人ファイルエラー

無効な墨西哥人ファイルエラーが発生した場合の対処方法。

墨西哥人のバージョン互換性

最良の結果を得るには,使用しているMATLABバージョンで作成された墨西哥人ファイルを実行します。

墨西哥人プラットフォームの互換性

別のソースからバイナリ墨西哥人ファイルを取得する場合は,そのファイルが,ファイルを実行するプラットフォーム用にコンパイルされていることを確認してください。

スレッドセーフでない墨西哥人API

MATLABの単一セッションを墨西哥人ファイルから別のスレッドで呼び出さないでください。

墨西哥人ファイルのセグメンテーション違反

墨西哥人ファイルが原因でセグメンテーション違反またはアサーションが発生した場合の対処方法。

墨西哥人ファイルが正しい結果を生成しない

墨西哥人で間違った応答が生成される場合の対処方法。

デバッグ

Microsoft Windowsプラットフォームでのデバッグ

微软Visual Studio®でのデバッグに関する推奨事項。

Macプラットフォームでのデバッグ

この例では,Macプラットフォームで墨西哥人ファイルをデバッグする方法を説明します。

Linuxプラットフォームでのデバッグ

この例では,Linux®プラットフォームで墨西哥人ファイルをデバッグする方法を説明します。