ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

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 への入力を行います。

mxArray を埋める
arrayFillSetData.c refbook

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

mxArray を埋める
arrayFillSetPr.c refbook

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

mxArray を埋める
arrayFillSetPrComplex.crefbook

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

mxArray を埋める
arrayProduct.cmex

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

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

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

C++ MEX 関数
arraySize.c mex

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

大規模な mxArrays の処理
complexAdd.Frefbook

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

 
convec.c
convec.F
refbook

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

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

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

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

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

文字列の受け渡し
sincall.c
sincall.F, fill.F
refbook

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

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

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

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

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

参考

関連するトピック

外部の Web サイト