Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

C 行列 API

C 行列 API を使用して MATLAB データを表すために mxArray 型を使用する C プログラムを作成する

R2017b 以前の MATLAB® と連携して動作する C プログラムを記述するには、C 行列 API の関数を使用します。これらの関数は、mxArray データ構造体と連携して動作し、C MEX 関数または C エンジン アプリケーションのビルドに使用されます。

メモ

可能な限り C アプリケーションよりも C++ を選択します。

C 行列 API には 2 つのバージョンがあります。

これらのライブラリ関数の使用例は、以下を参照してください。

注意

C 行列 API には、最新の C++ 機能をサポートするC++ 用の MATLAB データ APIとの互換性はありません。MATLAB (MEX ファイル) から呼び出せる C++ 関数の記述またはC++ からの MATLAB の呼び出しで説明するように、C 行列 API 関数は MATLAB API 内の関数と共に使用できません。

C データ型

mxArrayMATLAB 配列の C 型
mwSizemxArray のサイズ値に用いる C の型
mwIndexmxArray のインデックス値を表す C の型
mwSignedIndexmxArray のサイズ値に用いる C の符号付き整数型
mxCharstring 配列の型
mxLogicallogical 配列の型
mxComplexity配列に虚数部があるかどうかを指定するフラグ

mxArray の属性

mxIsNumericmxArray が数値であるかどうかを判別
mxIsComplexデータが複素数であるかどうかを判別
mxGetNumberOfDimensionsmxArray の次元数
mxGetElementSize各データ要素を格納するのに必要なバイト数
mxGetDimensions次元配列へのポインター
mxSetDimensions次元数と各次元のサイズを変更
mxGetNumberOfElements数値 mxArray の要素数
mxCalcSingleSubscript最初の要素から目的の要素へのオフセット
mxGetMmxArray の行数
mxSetMmxArray の行数を設定
mxGetNmxArray の列数
mxSetNmxArray の列数を設定
mxIsEmptymxArray が空かどうかを判別
mxIsFromGlobalWSmxArray が MATLAB グローバル ワークスペースからコピーされたかどうかを判別

データ型の作成、クエリ、およびアクセス

すべて展開する

mxCreateDoubleMatrix2 次元倍精度浮動小数点配列
mxCreateDoubleScalar指定した値に初期化されるスカラーの倍精度配列
mxCreateNumericMatrix2 次元数値行列
mxCreateNumericArrayN 次元数値配列
mxCreateUninitNumericMatrix初期化されない 2 次元数値行列
mxCreateUninitNumericArray初期化されない N 次元数値配列
mxIsScalar配列がスカラー配列かどうかを判定
mxGetScalar配列内の最初のデータ要素の実数部
mxIsDoublemxArray が倍精度浮動小数点数としてデータを表しているかどうかを判別
mxGetDoublesmxDOUBLE_CLASS 配列内の実数データ要素
mxSetDoublesmxDOUBLE_CLASS 配列内に実数データ要素を設定
mxIsSinglemxArray が単精度浮動小数点数としてデータを表しているかどうかを判別
mxGetSinglesmxSINGLE_CLASS 配列内の実数データ要素
mxSetSinglesmxSINGLE_CLASS 配列内に実数データ要素を設定
mxGetPr(非推奨) mxDOUBLE_CLASS 配列内の実数データ要素
mxSetPr(非推奨) mxDOUBLE_CLASS 配列内に実数データ要素を設定
mxIsInt8mxArray が 8 ビット符号付き整数としてデータを表しているかどうかを判別
mxGetInt8smxINT8_CLASS 配列内の実数データ要素
mxSetInt8smxINT8_CLASS 配列内に実数データ要素を設定
mxIsUint8mxArray が 8 ビット符号なし整数としてデータを表しているかどうかを判別
mxGetUint8smxUINT8_CLASS 配列内の実数データ要素
mxSetUint8smxUINT8_CLASS 配列内に実数データ要素を設定
mxIsInt16mxArray が 16 ビット符号付き整数としてデータを表しているかどうかを判別
mxGetInt16smxINT16_CLASS 配列内の実数データ要素
mxSetInt16smxINT16_CLASS 配列内に実数データ要素を設定
mxIsUint16mxArray が 16 ビット符号なし整数としてデータを表しているかどうかを判別
mxGetUint16smxUINT16_CLASS 配列内の実数データ要素
mxSetUint16smxUINT16_CLASS 配列内に実数データ要素を設定
mxIsInt32mxArray が 32 ビット符号付き整数としてデータを表しているかどうかを判別
mxGetInt32smxINT32_CLASS 配列内の実数データ要素
mxSetInt32smxINT32_CLASS 配列内に実数データ要素を設定
mxIsUint32mxArray が 32 ビット符号なし整数としてデータを表しているかどうかを判別
mxGetUint32smxUINT32_CLASS 配列内の実数データ要素
mxSetUint32smxUINT32_CLASS 配列内に実数データ要素を設定
mxIsInt64mxArray が 64 ビット符号付き整数としてデータを表しているかどうかを判別
mxGetInt64smxINT64_CLASS 配列内の実数データ要素
mxSetInt64smxINT64_CLASS 配列内にデータ要素を設定
mxIsUint64mxArray が 64 ビット符号なし整数としてデータを表しているかどうかを判別
mxGetUint64smxUINT64_CLASS 配列内の実数データ要素
mxSetUint64smxUINT64_CLASS 配列内に実数データ要素を設定
mxGetComplexDoublesmxDOUBLE_CLASS 配列内の複素数データ要素
mxSetComplexDoublesmxDOUBLE_CLASS 配列内に複素数データ要素を設定
mxGetComplexSinglesmxSINGLE_CLASS 配列内の複素数データ要素
mxSetComplexSinglesmxSINGLE_CLASS 配列内に複素数データ要素を設定
mxGetImagData数値 mxArray 内の虚数データ要素
mxSetImagData数値 mxArray 内に虚数データ要素を設定
mxGetPi(非推奨) mxDOUBLE_CLASS 配列内の虚数データ要素
mxSetPi(非推奨) mxDOUBLE_CLASS 配列内に虚数データ要素を設定
mxGetComplexInt8smxINT8_CLASS 配列内の複素数データ要素
mxSetComplexInt8smxINT8_CLASS 配列内に複素数データ要素を設定
mxGetComplexUint8smxUINT8_CLASS 配列内の複素数データ要素
mxSetComplexUint8smxUINT8_CLASS 配列内に複素数データ要素を設定
mxGetComplexInt16smxINT16_CLASS 配列内の複素数データ要素
mxSetComplexInt16smxINT16_CLASS 配列内に複素数データ要素を設定
mxGetComplexUint16smxUINT16_CLASS 配列内の複素数データ要素
mxSetComplexUint16smxUINT16_CLASS 配列内に複素数データ要素を設定
mxGetComplexInt32smxINT32_CLASS 配列内の複素数データ要素
mxSetComplexInt32smxINT32_CLASS 配列内に複素数データ要素を設定
mxGetComplexUint32smxUINT32_CLASS 配列内の複素数データ要素
mxSetComplexUint32smxUINT32_CLASS 配列内に複素数データ要素を設定
mxGetComplexInt64smxINT64_CLASS 配列内の複素数データ要素
mxSetComplexInt64smxINT64_CLASS 配列内に複素数データ要素を設定
mxGetComplexUint64smxUINT64_CLASS 配列内の複素数データ要素
mxSetComplexUint64smxUINT64_CLASS 配列内に複素数データ要素を設定
mxGetPi(非推奨) mxDOUBLE_CLASS 配列内の虚数データ要素
mxSetPi(非推奨) mxDOUBLE_CLASS 配列内に虚数データ要素を設定
mxCreateSparse2 次元スパース配列
mxCreateSparseLogicalMatrix2 次元スパース logical 配列
mxIsSparse入力がスパースの mxArray であるかどうかを判別
mxGetNzmax配列 IR、PR、および PI 内の要素数
mxSetNzmax非ゼロ要素のストレージ スペースの設定
mxGetIrスパース行列の配列 IR
mxSetIrスパース配列の配列 IR
mxGetJcスパース行列の配列 JC
mxSetJcスパース配列の配列 JC
mxGetData非数値 mxArray 内のデータ要素
mxSetData非数値 mxArray 内のデータ要素へのポインターを設定
mxCreateString指定された文字列に初期化された 1 次元配列
mxCreateCharMatrixFromStrings指定値に初期化された 2 次元の mxChar 配列
mxCreateCharArrayN 次元の mxChar 配列
mxIsChar入力が配列 mxChar かどうかを判定
mxGetChars文字配列データへのポインター
mxIsLogicalmxArray が mxLogical 型であるかどうかを判別
mxIsLogicalScalarスカラー配列が mxLogical 型であるかどうかを判別
mxIsLogicalScalarTruemxLogical 型のスカラー配列が true であるかどうかを判別
mxClassID配列のクラスを識別する列挙値
mxCreateLogicalArrayN 次元 logical 配列
mxCreateLogicalMatrix2 次元 logical 配列
mxCreateLogicalScalarスカラーの logical 配列
mxGetLogicalslogical 配列データへのポインター
mxIsClassmxArray が指定のクラスのオブジェクトであるかどうかを判別
mxGetClassIDmxArray のクラス
mxGetClassName文字列としての mxArray のクラス
mxSetClassName構造体配列の MATLAB オブジェクト配列への変換
mxGetPropertyMATLAB オブジェクトのパブリック プロパティの値
mxSetPropertyMATLAB オブジェクトのパブリック プロパティの値を設定
mxCreateStructMatrix2 次元構造体配列
mxCreateStructArrayN 次元構造体配列
mxIsStructmxArray が構造体であるかどうかを判別
mxGetField構造体配列からフィールド値へのポインター (インデックスおよびフィールド名を指定)
mxSetFieldインデックスおよびフィールド名を指定して、構造体配列にフィールド値を設定
mxGetNumberOfFields構造体配列のフィールド数。
mxGetFieldNameByNumber構造体配列からフィールド名へのポインター (フィールド番号を指定)
mxGetFieldNumber構造体配列内のフィールド番号 (フィールド名を指定)
mxGetFieldByNumber構造体配列からフィールド値へのポインター (インデックスおよびフィールド番号を指定)
mxSetFieldByNumberインデックスおよびフィールド番号を指定して、構造体配列にフィールド値を設定
mxAddField構造体配列へのフィールド追加
mxRemoveField構造体配列からのフィールドの削除
mxCreateCellMatrix2 次元 cell 配列
mxCreateCellArrayN 次元 cell 配列
mxIsCellmxArray が cell 配列かどうかを判別
mxGetCellcell 配列の要素へのポインター
mxSetCellcell 配列の内容を設定

mxArray の削除と複製

mxDestroyArray関数 MXCREATE* によって割り当てられた動的メモリを解放
mxDuplicateArray配列のディープ コピーを作成

mxArray の変換

すべて展開する

mxMakeArrayComplex実数データを保持したまま、実数 mxArray を複素数に変換する
mxMakeArrayReal実数データを保持したまま、複素数 mxArray を実数に変換する
mxArrayToString配列から文字列
mxArrayToUTF8String配列から UTF-8 文字列へのエンコード
mxGetStringmxChar 配列から C スタイル文字列または Fortran character の配列へ
mxSetClassName構造体配列の MATLAB オブジェクト配列への変換

データ メモリの管理

mxCallocMATLAB メモリ マネージャーを使用して配列の動的メモリを割り当て、0 に初期化
mxMallocMATLAB メモリ マネージャーを使用して、初期化されていない動的メモリを割り当てる
mxReallocMATLAB メモリ マネージャーを使用した動的メモリの再割り当て
mxFree関数 mxCalloc、mxMalloc、mxRealloc、mxArrayToString または mxArrayToUTF8String によって割り当てられた動的メモリの解放

アサート

mxAssertデバッグ目的のためのアサーション値の確認
mxAssertSアサーション テキストを出力せずにアサーション値をチェック

定数

mxIsInf入力が無限であるかどうかを判別
mxIsFinite入力が有限かどうかを判別
mxIsNaN入力が NaN (Not-a-Number) であるかどうかを判別

トピック