N-D numeric array
#include "matrix.h" mxArray *mxCreateNumericArray(mwSize ndim, const mwSize *dims, mxClassID classid, mxComplexity ComplexFlag);
mwPointer mxCreateNumericArray(ndim, dims, classid, ComplexFlag) mwSize ndim mwSize dims(ndim) integer*4 classid, ComplexFlag
ndim
Number of dimensions. If you specify a value for ndim
that
is less than 2, mxCreateNumericArray
automatically
sets the number of dimensions to 2.
dims
Dimensions array. Each element in the dimensions array contains
the size of the array in that dimension. For example, in C, setting dims[0]
to
5 and dims[1]
to 7 establishes a 5
-by-7
mxArray
.
In Fortran, setting dims(1)
to 5
and dims(2)
to 7
establishes
a 5
-by-7
mxArray
.
In most cases, there are ndim
elements in the dims
array.
classid
Identifier for the class of the array, which determines the
way the numerical data is represented in memory. For example, specifying mxINT16_CLASS
in
C causes each piece of numerical data in the mxArray
to
be represented as a 16-bit signed integer. In Fortran, use the function mxClassIDFromClassName
to derive the classid
value
from a MATLAB® class name. See the Description section
for more information.
ComplexFlag
If the mxArray
you are creating is to contain
imaginary data, set ComplexFlag
to mxCOMPLEX
in C (1
in Fortran). Otherwise, set ComplexFlag
to mxREAL
in C (0
in Fortran).
Pointer to the created mxArray
,
if successful. If unsuccessful in a standalone (non-MEX file) application,
returns NULL
in C (0
in Fortran).
If unsuccessful in a MEX file, the MEX file terminates and
returns control to the MATLAB prompt. The function is unsuccessful
when there is not enough free heap space to create the mxArray
.
Call mxCreateNumericArray
to create an
N-dimensional mxArray
in which all data elements
have the numeric data type specified by classid
.
After creating the mxArray
, mxCreateNumericArray
initializes
all its real data elements to 0. If ComplexFlag
equals mxCOMPLEX
in
C (1
in Fortran), mxCreateNumericArray
also
initializes all its imaginary data elements to 0. mxCreateNumericArray
differs
from mxCreateDoubleMatrix
as follows:
All data elements in mxCreateDoubleMatrix
are
double-precision, floating-point numbers. The data elements in mxCreateNumericArray
can
be any numerical type, including different integer precisions.
mxCreateDoubleMatrix
can create
two-dimensional arrays only; mxCreateNumericArray
can
create arrays of two or more dimensions.
mxCreateNumericArray
allocates dynamic
memory to store the created mxArray
. When you finish
with the created mxArray
, call mxDestroyArray
to
deallocate its memory.
MATLAB automatically
removes any trailing singleton dimensions specified in the dims
argument.
For example, if ndim
equals 5
and dims
equals [4
1 7 1 1]
, the resulting array has the dimensions 4
-by-1
-by-7
.
The following table shows the C classid
values
and the Fortran data types that are equivalent to MATLAB classes.
MATLAB Class Name | C | Fortran Type |
---|---|---|
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
|
|
See the
following examples in matlabroot
/extern/examples/refbook
.
See the
following examples in matlabroot
/extern/examples/mx
.
mxClassId
, mxClassIdFromClassName
, mxComplexity
, mxDestroyArray
, mxCreateUninitNumericArray
, mxCreateNumericMatrix