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.