Main Content

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

mxGetDoubles を使用して mxArray への入力を行います。

C MEX ファイルの mxArray を埋める
arrayFillSetData.c refbook

mxArray に double 以外の値を入力します。

C MEX ファイルの mxArray を埋める
arrayFillSetPr.c refbook

mxSetDoubles を使用して mxArray への入力を行い、メモリを動的に割り当てます。

C MEX ファイルの mxArray を埋める
arrayFillSetComplexPr.crefbook

mxSetComplexDoubles を使用して mxArray への入力を行い、メモリを動的に割り当てます。

C MEX ファイルの mxArray を埋める
arrayProduct.cmex

1 行 N 列の行列をスカラー倍します。

C ソース MEX ファイル arrayProduct.c の作成
arrayProduct.cppcpp_mex

arrayProduct.c と同じですが、C++ 用の MATLAB データ APIを使用します。

C++ MEX 関数
arraySize.c mex

大きな mxArray のメモリ要件を表示します。

C MEX ファイルでの大規模な mxArrays の処理
complexAdd.Frefbook

2 つの double 型複素数配列を追加します。

 
convec.c
convec.F
refbook

複素数データを渡します。

C MEX ファイルでの複素数データの処理
dblmat.F
compute.F
refbookFortran 関数 %VAL を使用します。 
doubleelement.crefbook符号なしの 16 ビット整数を使用します。C MEX ファイルにおける 8 ビット、16 ビット、32 ビット、および 64 ビット データの処理
explore.cmex入力変数のデータ型を特定します。mxArray の操作
findnz.c refbookn 次元配列を使用します。C MEX ファイルでの多次元数値配列の操作
fulltosparseIC.c
fulltosparse.c
fulltosparse.F, loadsparse.F
refbookスパース行列に入力します。C MEX ファイルでのスパース配列の処理
matsq.FrefbookFortran の行列を渡します。 
matsqint8.FrefbookFortran の非 double の行列を渡します。 
mexatexit.c
mexatexit.cpp
mexデータ ファイルを閉じる終了関数を登録します。C++ ファイル処理の例
mexcallmatlab.cmex

組み込みの MATLAB 関数 disp を呼び出します。

 
mexcallmatlabwithtrap.c mexエラー情報の取得方法。 
mexcpp.cppmexC 行列 API でビルドされた MEX ファイルの C++ 言語機能の一部を表示します。C++ クラスの例
mexevalstring.c mexmexEvalString を使用して、MATLAB で変数を割り当てます。mexEvalString
mexfunction.cmexmexFunction の使用方法。mexFunction
mxgetproperty.cmexmxGetProperty および mxSetProperty を使用して、グラフィックス オブジェクトの Color プロパティを変更します。mxGetPropertymxSetProperty
mexgetarray.cmexmexGetVariable および mexPutVariable を使用して、MEX ファイルおよび MATLAB グローバル ワークスペース内のカウンターを追跡します。mexGetVariablemexPutVariable
mexgetarray.cpp mexgetarray.c と同じですが、C++ 用の MATLAB データ APIgetVariablesetVariableを使用します。MEX からの MATLAB 変数の設定と取得
mexlock.c
mexlockf.F
mexMEX ファイルをロックおよびロック解除する方法。mexLock
mxcalcsinglesubscript.cmxMATLAB の 1 ベースの行列インデックスと C の 0 ベースのインデックスを対比します。mxCalcSingleSubscript
mxcreatecellmatrix.c
mxcreatecellmatrixf.F
mx2 次元 cell 配列を作成します。C MEX ファイルでの 2 次元 cell 配列の作成
mxcreatecharmatrixfromstr.cmx2 次元文字配列を作成します。mxCreateCharMatrixFromStrings
mxcreatestructarray.cmxC 構造体から MATLAB 構造体を作成します。mxCreateStructArray
mxcreateuninitnumericmatrix.cmx

初期化されていない mxArray を作成し、ローカル データを入力して返します。

mxCreateUninitNumericMatrix
mxgeteps.c
mxgetepsf.F
mx

MATLAB eps 値を読み取ります。

mxGetEps
mxgetinf.cmx

inf 値を読み取ります。

mxGetInf
mxgetnzmax.c mxスパース行列内の非ゼロ要素の数と、スパース行列に保存できる非ゼロ要素の最大数を表示します。mxGetNzmax
mxisclass.cmx配列が、指定されたクラスのメンバーかどうかをチェックします。mxIsClass
mxisfinite.cmxNaN 値および無限値をチェックします。mxIsFinite
mxislogical.cmx

ワークスペース変数が logical かグローバルかをチェックします。

mxIsLogical
mxisscalar.cmx入力変数がスカラーであるかどうかをチェックします。mxIsScalar
mxmalloc.cmx

メモリを割り当てて、MATLAB char 配列を C スタイルの文字列にコピーします。

mxMalloc
mxsetdimensions.c
mxsetdimensionsf.F
mx配列の次元を変更します。mxSetDimensions
mxsetnzmax.cmxスパース行列にメモリを再割り当てし、prpiir および nzmax の値をリセットします。mxSetNzmax
passstr.F refbookFortran から MATLAB に C の文字行列を渡します。 
phonebook.crefbook構造体と cell 配列を操作します。C MEX ファイルでの構造体と cell 配列の受け渡し
phonebook.cppcpp_mexphonebook.c と同じですが、C++ 用の MATLAB データ APIを使用します。C++ MEX 関数
revord.c
revord.F
refbook

MATLAB char 配列を C スタイルの文字列へコピーおよび C スタイルの文字列からコピーします。

C MEX ファイルでの文字列の受け渡し
sincall.c
sincall.F, fill.F
refbook

mxArray を作成し、MATLAB 関数 sin および関数 plot に渡します。

 
timestwo.c
timestwo.F
refbookMEX ファイルの一般的なワークフローを示します。C MEX ファイルでのスカラー値の受け渡し
xtimesy.c
xtimesy.F
refbook複数のパラメーターを渡します。
yprime.c
yprimef.F, yprimefg.F
mex単純な三体軌道問題を解きます。 
yprime.cppcpp_mexyprime.c と同じですが、C++ 用の MATLAB データ APIを使用します。C++ MEX 関数

Fortran サブルーチンを呼び出す MEX 関数

次の表の例では、MEX 関数から LAPACK または BLAS 関数を呼び出します。これらの例は、Fortran ライブラリ mwlapackmwblas の一方または両方にリンクしています。MEX 関数をビルドするには、[詳細] 列に記載されたトピックの説明に従ってください。

例の名前 サンプルのサブフォルダー 説明 詳細
dotProductComplexIC.c
dotProductComplexIC.F
dotProductComplex.c
refbookC または Fortran MEX ファイルから呼び出された関数について、Fortran 複素数の戻り値型を処理します。
dotProductComplexIC.c および dotProductComplexIC.F はインターリーブされた複素数 API を使用します。dotProductComplex.c は実数/虚数分離型複素数 API を使用します。
Fortran 複素数の戻り値型を処理 — dotProductComplex
matrixDivide.crefbookLAPACK 関数を呼び出します。入力値の変更からの保全
matrixDivideComplex.crefbook複素数で LAPACK 関数を呼び出します。複素変数の受け渡し — matrixDivideComplex
matrixMultiply.crefbookBLAS 関数を呼び出します。C/C++ プログラムから Fortran 関数への引数の受け渡し
utdu_slv.crefbook対称不定分解に LAPACK を使用します。LAPACK を使用した対称不定分解 — utdu_slv

参考

関連するトピック