version (7.92 KB) by James Tursa
This C routine puts a shared data copy of a variable into a workspace from a mex routine


Updated Thu, 13 Jun 2013 18:01:23 +0000

View License

This submission is intended for C mex programmers who have a familiarity with the copy-on-write & shared data copy mechanism of MATLAB.

The official mex routine mexPutVariable puts a deep data copy of a variable into a workspace directly from a mex function (without using the plhs return facility). If you are working with very large variables this deep copy can be undesirable. The enclosed function mexPutVariableSharedDataCopy acts like mexPutVariable, but it puts a shared data copy of the variable instead of a deep data copy.

Enclosed is the function file itself, a header file for the function, and a test routine (with associated m-file for self-building).

This function uses unofficial techniques to hack into the mxArray variable header values directly. As such, it is not guaranteed to work on all platforms or with all MATLAB versions. It has only been tested on a few 32-bit Windows platforms.

Cite As

James Tursa (2022). mexPutVariableSharedDataCopy (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2006b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!