mxGetCell (C and Fortran)

Get contents of cell array

C Syntax

#include "matrix.h"
mxArray *mxGetCell(const mxArray *pm, mwIndex index);

Fortran Syntax

mwPointer mxGetCell(pm, index)
mwPointer pm
mwIndex index



Pointer to a cell mxArray


Number of elements in the cell mxArray between the first element and the desired one. See mxCalcSingleSubscript for details on calculating an index in a multidimensional cell array.


Pointer to the ith cell mxArray if successful. Otherwise, returns NULL in C (0 in Fortran). Causes of failure include:

  • Specifying the index of a cell array element that has not been populated.

  • Specifying a pm that does not point to a cell mxArray.

  • Specifying an index greater than the number of elements in the cell.

  • Insufficient heap space.

If the pointer in the cell is NULL, mxGetCell allocates an empty, double mxArray.

Do not call mxDestroyArray on an mxArray returned by the mxGetCell function.


Call mxGetCell to get a pointer to the mxArray held in the indexed element of the cell mxArray.

    Note   Inputs to a MEX-file are constant read-only mxArrays. Do not modify the inputs. Using mxSetCell* or mxSetField* functions to modify the cells or fields of a MATLAB® argument causes unpredictable results.


See the following examples in matlabroot/extern/examples/mex.

Was this topic helpful?