This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

mxSetData (C)

Set pointer to data elements in nonnumeric mxArray

mxSetData is not recommended for numeric arrays. Use typed, data-access functions instead. For more information, see Compatibility Considerations.

C Syntax

#include "matrix.h"
void mxSetData(mxArray *pm, void *pa);


Use mxSetData to set data elements for nonnumeric arrays only.

For numeric arrays, MathWorks recommends that you create MEX files and update existing MEX files to use the typed, data-access functions in the interleaved complex API. For more information, see:

To build the MEX file, call mex with the -R2018a option.

The mxSetData function does not free memory allocated for existing data. To free existing memory, call mxFree on the pointer returned by mxGetData.

Input Arguments

expand all

Pointer to a nonnumeric MATLAB array, specified as mxArray *.

Pointer to the data array within an mxArray, specified as void *

The array must be in dynamic memory. Call mxCalloc to allocate this memory. Do not use the ANSI® C calloc function, which can cause memory alignment issues leading to program termination.

Compatibility Considerations

expand all

Behavior changed in R2018a

Introduced before R2006a