mxArray
sBinary MEX-files built on 64-bit platforms can handle 64-bit mxArray
s.
These large data arrays can have up to 248–1
elements. The maximum number of elements a sparse mxArray
can
have is 248-2.
Using the following instructions creates platform-independent binary MEX-files as well.
Your system configuration can affect the performance of MATLAB®.
The 64-bit processor requirement enables you to create the mxArray
and
access data in it. However, the system memory, in particular the size
of RAM and virtual memory, determine the speed at which MATLAB processes
the mxArray
. The more memory available, the faster
the processing.
The amount of RAM also limits the amount of data you can process at one time in MATLAB. For guidance on memory issues, see Strategies for Efficient Use of Memory.
The signatures of the API functions shown in the following table use
the mwSize
or mwIndex
types to
work with a 64-bit mxArray
. The variables you use
in your source code to call these functions must be the correct
type.
Fortran mxArray
Functions Using
mwSize
/mwIndex
mxCalcSingleSubscript | mxCreateStructMatrix |
mxCalloc | mxGetCell |
| mxGetDimensions |
| mxGetElementSize |
| mxGetField |
| mxGetFieldByNumber |
| mxGetIr |
| mxGetJc |
| mxGetM |
| mxGetN |
| mxGetNumberOfDimensions |
| mxGetNumberOfElements |
| mxGetNzmax |
| mxGetProperty |
| mxGetString |
| mxMalloc |
| mxRealloc |
| mxSetCell |
| mxSetDimensions |
mxCreateCellArray | mxSetField |
mxCreateCellMatrix | mxSetFieldByNumber |
mxCreateCharArray | mxSetIr |
mxCreateCharMatrixFromStrings | mxSetJc |
mxCreateDoubleMatrix | mxSetM |
mxCreateNumericArray | mxSetN |
mxCreateNumericMatrix | mxSetNzmax |
mxCreateSparse | mxSetProperty |
mxCreateStructArray |
When using the 64-bit API, mwSize
and mwIndex
are
equivalent to INTEGER*8
in Fortran. This type is
unsigned, unlike INTEGER*4
, which is the type used
in the 32-bit API. Be careful not to pass any negative values to functions
that take mwSize
or mwIndex
arguments.
Do not cast negative INTEGER*4
values to mwSize
or mwIndex
;
the returned value cannot be predicted. Instead, change your code
to avoid using negative values.
If you develop cross-platform applications (programs that can
run on both 32-bit and 64-bit architectures), pay attention to the
upper limit of values you use for mwSize
and mwIndex
.
The 32-bit application reads these values and assigns them to variables
declared as INTEGER*4
in Fortran. Be careful to
avoid assigning a large mwSize
or mwIndex
value
to an INTEGER*4
or other variable that might be
too small.