This function attempts to programmatically determine a suitable definition of the mxArray structure. This is intended to allow the user explore the workings of MATLAB's mxArray, and to facilitate using undocumented methods in MEX functions.
This function analyses the mxArray by first finding its size, and then examines changes to the bytes of mxArray after the mxArray is modified in MATLAB. In some cases the byte pattern from two mxArrays are compared to determine which mxArray properties are represented by which bytes. The approach was motivated the method described at:
Due to the may it works, it may fail to find members of the mxArray occasionally. If it missed something, try it again xD.
The output should look like the examples included: mxInternals_R2010A.h and mxInternals_R2013B.h
WARNING: This function attempts to read data from memory pointers that may not been valid - this may crash MATLAB, so SAVE ALL WORK BEFORE RUNNING. If that happens - don't panick, just restart Matlab and try again. It has been tested for:
(some windows, some unix).
DISCLAIMER - This function has NOT been tested on a BIG endian machine. While I've attempted to make the program compatible with big endian machines, I can't test it. So if you have one, I'd love to know if it works!
The early mxArray investigation done by
Peter Boetcher, James Tursa, Bruno Luong, Joshua Dillon and all else involved.
Yair Altman, Peter Li, and "Martin":
Andrew (2021). MxArrayDefinition (https://www.mathworks.com/matlabcentral/fileexchange/46427-mxarraydefinition), MATLAB Central File Exchange. Retrieved .
The generated file states that it does not know how pFieldNames is stored.
On /* Matlab version: R2010b */
/* Computer: PCWIN64 */
this pointer seems to point to a struct like:
int dummy; /* value 1 */
with fieldNamePtr pointing to a zero-terminated string.
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!