Main Content

mxGetElementSize (Fortran)

Number of bytes required to store each data element

For a complex mxArray built with the interleaved complex API, mxGetElementSize returns twice the value that the function in the separate complex API returns. For more information, see Compatibility Considerations.

Fortran Syntax

#include "fintrf.h"
mwPointer mxGetElementSize(pm)
mwPointer pm


Call mxGetElementSize to determine the number of bytes in each data element of the mxArray. For example, if the MATLAB® class of an mxArray is int16, the mxArray stores each data element as a 16-bit (2-byte) signed integer. Thus, mxGetElementSize returns 2.

mxGetElementSize is helpful when using a non-MATLAB routine to manipulate data elements.


Fortran does not have an equivalent of size_t. mwPointer is a preprocessor macro that provides the appropriate Fortran type. The value returned by this function, however, is not a pointer.

Input Arguments

expand all

Pointer to an mxArray, specified as mwPointer.

Output Arguments

expand all

Number of bytes required to store one element of the specified mxArray, returned as integer*4.

If pm is complex numeric, then the data in the output argument depends on which version of the Fortran Matrix API you use.

  • If you build with the separate complex API (mex -R2017b option), then the function returns the number of bytes for the data type of the array regardless whether the array is complex or real.

  • If you build with the interleaved complex API (mex -R2018a option), then the return value is twice the number of bytes for the data type.

If pm points to a cell or structure, then mxGetElementSize returns the size of a pointer. The function does not return the size of all the elements in each cell or structure field.

Returns 0 on failure. The primary reason for failure is that pm points to an mxArray having an unrecognized class.

Version History

Introduced before R2006a

expand all

See Also