MEX 関数のソース コード例の表
次の表には、MEX 関数の例を作成するためのソース コード ファイルのリストが記載されています。これらの例を、独自の MEX 関数を作成するための開始点として使用してください。表には次の情報が記載されています。
例の名前 - MATLAB® エディターでソース ファイルが開く便利なリンク。任意のコード開発エディターを使用してソース MEX ファイルを作成できます。
例のサブフォルダー - 例が含まれる、
matlabroot
/extern/examples
のサブフォルダー。ファイルを書き込み可能なフォルダーにコピーする際には、このサブフォルダー名を使用してください。説明 - 例の説明。
詳細 - 例の説明または使用に関するトピックへのリンク、または例で使用されている API 関数へのリンク。
入門
mex
コマンドを使用して例をビルドします。必ず MATLAB でサポートされているコンパイラがインストールされていることを確認してください。ソース コード言語 lang
用に選択したコンパイラを検証するには、以下を入力します。
mex -setup lang
次のコマンド構文を使用して、パス上の書き込み可能なフォルダーにファイルをコピーします。filename
は例の名前、foldername
はサブフォルダー名です。
copyfile(fullfile(matlabroot,'extern','examples','foldername','filename'),'.','f')
たとえば、arrayProduct.c
をコピーするには、次のように入力します。
copyfile(fullfile(matlabroot,'extern','examples','mex','arrayProduct.c'),'.','f')
C、C++、および Fortran MEX 関数
MATLAB 内またはオペレーティング システムのプロンプトで MEX 関数の例をビルドするには、次のコマンド構文を使用します。filename
は例の名前で、release-option
には例で使用されている API を指定します。MATLAB API の詳細については、MEX アプリケーションの選択を参照してください。
mex -v -release-option filename
例の名前 | サンプルのサブフォルダー | 説明 | 詳細 |
---|---|---|---|
arrayFillGetPr.c | refbook |
| C MEX ファイルの mxArray を埋める |
arrayFillSetData.c | refbook |
| C MEX ファイルの mxArray を埋める |
arrayFillSetPr.c | refbook |
| C MEX ファイルの mxArray を埋める |
arrayFillSetComplexPr.c | refbook |
| C MEX ファイルの mxArray を埋める |
arrayProduct.c | mex | 1 行 N 列の行列をスカラー倍します。 | C ソース MEX ファイル arrayProduct.c の作成 |
arrayProduct.cpp | cpp_mex |
| C++ MEX 関数 |
arraySize.c | mex | 大きな | C MEX ファイルでの大規模な mxArrays の処理 |
complexAdd.F | refbook | 2 つの double 型複素数配列を追加します。 | |
convec.c convec.F | refbook | 複素数データを渡します。 | C MEX ファイルでの複素数データの処理 |
dblmat.F compute.F | refbook | Fortran 関数 %VAL を使用します。 | |
doubleelement.c | refbook | 符号なしの 16 ビット整数を使用します。 | C MEX ファイルにおける 8 ビット、16 ビット、32 ビット、および 64 ビット データの処理 |
explore.c | mex | 入力変数のデータ型を特定します。 | mxArray の操作 |
findnz.c | refbook | n 次元配列を使用します。 | C MEX ファイルでの多次元数値配列の操作 |
fulltosparseIC.c fulltosparse.c fulltosparse.F , loadsparse.F | refbook | スパース行列に入力します。 | C MEX ファイルでのスパース配列の処理 |
matsq.F | refbook | Fortran の行列を渡します。 | |
matsqint8.F | refbook | Fortran の非 double の行列を渡します。 | |
mexatexit.c mexatexit.cpp | mex | データ ファイルを閉じる終了関数を登録します。 | C++ ファイル処理の例 |
mexcallmatlab.c | mex | 組み込みの MATLAB 関数 | |
mexcallmatlabwithtrap.c | mex | エラー情報の取得方法。 | |
mexcpp.cpp | mex | C 行列 API でビルドされた MEX ファイルの C++ 言語機能の一部を表示します。 | C++ クラスの例 |
mexevalstring.c | mex | mexEvalString を使用して、MATLAB で変数を割り当てます。 | mexEvalString |
mexfunction.c | mex | mexFunction の使用方法。 | mexFunction |
mxgetproperty.c | mex | mxGetProperty および mxSetProperty を使用して、グラフィックス オブジェクトの Color プロパティを変更します。 | mxGetProperty および mxSetProperty |
mexgetarray.c | mex | mexGetVariable および mexPutVariable を使用して、MEX ファイルおよび MATLAB グローバル ワークスペース内のカウンターを追跡します。 | mexGetVariable および mexPutVariable |
mexgetarray.cpp | mexgetarray.c と同じですが、C++ 用の MATLAB データ APIのgetVariableとsetVariableを使用します。 | MEX からの MATLAB 変数の設定と取得 | |
mexlock.c mexlockf.F | mex | MEX ファイルをロックおよびロック解除する方法。 | mexLock |
mxcalcsinglesubscript.c | mx | MATLAB の 1 ベースの行列インデックスと C の 0 ベースのインデックスを対比します。 | mxCalcSingleSubscript |
mxcreatecellmatrix.c mxcreatecellmatrixf.F | mx | 2 次元 cell 配列を作成します。 | C MEX ファイルでの 2 次元 cell 配列の作成 |
mxcreatecharmatrixfromstr.c | mx | 2 次元文字配列を作成します。 | mxCreateCharMatrixFromStrings |
mxcreatestructarray.c | mx | C 構造体から MATLAB 構造体を作成します。 | mxCreateStructArray |
mxcreateuninitnumericmatrix.c | mx | 初期化されていない | mxCreateUninitNumericMatrix |
mxgeteps.c mxgetepsf.F | mx | MATLAB | mxGetEps |
mxgetinf.c | mx |
| mxGetInf |
mxgetnzmax.c | mx | スパース行列内の非ゼロ要素の数と、スパース行列に保存できる非ゼロ要素の最大数を表示します。 | mxGetNzmax |
mxisclass.c | mx | 配列が、指定されたクラスのメンバーかどうかをチェックします。 | mxIsClass |
mxisfinite.c | mx | NaN 値および無限値をチェックします。 | mxIsFinite |
mxislogical.c | mx | ワークスペース変数が logical かグローバルかをチェックします。 | mxIsLogical |
mxisscalar.c | mx | 入力変数がスカラーであるかどうかをチェックします。 | mxIsScalar |
mxmalloc.c | mx | メモリを割り当てて、MATLAB | mxMalloc |
mxsetdimensions.c mxsetdimensionsf.F | mx | 配列の次元を変更します。 | mxSetDimensions |
mxsetnzmax.c | mx | スパース行列にメモリを再割り当てし、pr 、pi 、ir および nzmax の値をリセットします。 | mxSetNzmax |
passstr.F | refbook | Fortran から MATLAB に C の文字行列を渡します。 | |
phonebook.c | refbook | 構造体と cell 配列を操作します。 | C MEX ファイルでの構造体と cell 配列の受け渡し |
phonebook.cpp | cpp_mex | phonebook.c と同じですが、C++ 用の MATLAB データ APIを使用します。 | C++ MEX 関数 |
revord.c revord.F | refbook | MATLAB | C MEX ファイルでの文字列の受け渡し |
sincall.c sincall.F , fill.F | refbook |
| |
timestwo.c timestwo.F | refbook | MEX ファイルの一般的なワークフローを示します。 | C MEX ファイルでのスカラー値の受け渡し |
xtimesy.c xtimesy.F | refbook | 複数のパラメーターを渡します。 | |
yprime.c yprimef.F , yprimefg.F | mex | 単純な三体軌道問題を解きます。 | |
yprime.cpp | cpp_mex | yprime.c と同じですが、C++ 用の MATLAB データ APIを使用します。 | C++ MEX 関数 |
Fortran サブルーチンを呼び出す MEX 関数
次の表の例では、MEX 関数から LAPACK または BLAS 関数を呼び出します。これらの例は、Fortran ライブラリ mwlapack
と mwblas
の一方または両方にリンクしています。MEX 関数をビルドするには、[詳細] 列に記載されたトピックの説明に従ってください。
例の名前 | サンプルのサブフォルダー | 説明 | 詳細 |
---|---|---|---|
dotProductComplexIC.c dotProductComplexIC.F dotProductComplex.c | refbook | C または Fortran MEX ファイルから呼び出された関数について、Fortran 複素数の戻り値型を処理します。dotProductComplexIC.c および dotProductComplexIC.F はインターリーブされた複素数 API を使用します。dotProductComplex.c は実数/虚数分離型複素数 API を使用します。 | Fortran 複素数の戻り値型を処理 — dotProductComplex |
matrixDivide.c | refbook | LAPACK 関数を呼び出します。 | 入力値の変更からの保全 |
matrixDivideComplex.c | refbook | 複素数で LAPACK 関数を呼び出します。 | 複素変数の受け渡し — matrixDivideComplex |
matrixMultiply.c | refbook | BLAS 関数を呼び出します。 | C/C++ プログラムから Fortran 関数への引数の受け渡し |
utdu_slv.c | refbook | 対称不定分解に LAPACK を使用します。 | LAPACK を使用した対称不定分解 — utdu_slv |