mxDuplicateArray (C and Fortran)

Make deep copy of array

C Syntax

#include "matrix.h"
mxArray *mxDuplicateArray(const mxArray *in);

Fortran Syntax

mwPointer mxDuplicateArray(in)
mwPointer in



Pointer to the mxArray you want to copy


Pointer to the created mxArray, if successful. If unsuccessful in a standalone (non-MEX file) application, returns NULL in C (0 in Fortran). If unsuccessful in a MEX file, the MEX file terminates and returns control to the MATLAB® prompt. The function is unsuccessful when there is not enough free heap space to create the mxArray.


mxDuplicateArray makes a deep copy of an array, and returns a pointer to the copy. A deep copy refers to a copy in which all levels of data are copied. For example, a deep copy of a cell array copies each cell and the contents of each cell (if any), and so on.


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

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

Was this topic helpful?