Main Content

mxGetElementSize (C)

各データ要素を格納するのに必要なバイト数

インターリーブされた複素数 API でビルドされた複素数 mxArray の場合、mxGetElementSize によって返される値は、実数/虚数分離型の複素数 API の関数によって返される値の 2 倍となります。詳細については、互換性についての考慮事項を参照してください。

C 構文

#include "matrix.h"
size_t mxGetElementSize(const mxArray *pm);

説明

mxGetElementSize を呼び出して、mxArray の各データ要素のバイト数を判断します。たとえば、mxArray の MATLAB® クラスが int16 の場合、mxArray は各データ要素を 16 ビット (2 バイト) の符号付き整数として格納します。そのため、mxGetElementSize2 を返します。

mxGetElementSize は、MATLAB 以外のルーチンを使用してデータ要素を操作する場合に役立ちます。たとえば C 関数 memcpy はコピーする要素のサイズを必要とします。

入力引数

すべて展開する

mxArray へのポインター。const mxArray* として指定します。

出力引数

すべて展開する

指定された mxArray の 1 つの要素を格納するために必要なバイト数。size_t として返されます。

pm が複素数値の場合、出力引数内のデータは、使用する C 行列 API のバージョンによって異なります。

  • インターリーブされた複素数 API (mex -R2018a オプション) でビルドする場合、戻り値は sizeof(std::complex<T>) (T は配列のデータ型) です。

  • 実数/虚数分離型の複素数 API (mex -R2017b オプション) でビルドする場合、配列が複素数か実数かにかかわらず、配列のデータ型のバイト数が返される。

pm が cell または構造体を指している場合、mxGetElementSize はポインターのサイズを返します。この関数は、各 cell または構造体フィールド内のすべての要素のサイズは返しません。

失敗した場合は 0 を返します。失敗の主な理由は、認識されていないクラスをもつ mxArraypm が指しているためです。

matlabroot/extern/examples/refbook の次の例を参照してください。

バージョン履歴

R2006a より前に導入

すべて展開する

参考

|