Get the number of dimensions
C Syntax
#include "matrix.h"
int mxGetNumberOfDimensions(const mxArray *array_ptr);
Arguments
array_ptr
Pointer to an mxArray
.
Returns
The number of dimensions in the specified mxArray
. The returned value is always 2 or greater.
Description
Use mxGetNumberOfDimensions
to determine how many dimensions are in the specified array. To determine how many elements are in each dimension, call mxGetDimensions
.
Examples
Consider a MEX-file named CountDim
that calls mxGetNumberOfDimensions
to determine how many dimensions are in the first input argument.
void
mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray
*prhs[])
{
int number_of_dimensions;
int *dims;
int c;
/* Look at the number of dimensions in the input mxArray. */
number_of_dimensions = mxGetNumberOfDimensions(prhs[0]);
/* Create a dimensions array having the same number of
dimensions as the input mxArray. Arbitrarily make the length of
each dimension be 2. */
dims = mxCalloc(number_of_dimensions, sizeof(int));
for (c=0; c<number_of_dimensions; c++)
dims[c]=2;
/* Create an mxArray of signed 16-bit integers. */
mxCreateNumericArray(number_of_dimensions, dims,
mxINT16_CLASS, mxREAL);
...
}
In MATLAB, create a three-dimensional mxArray
named td
. Then pass td
as an argument to CountDim
>> td = rand(6, 4, 2);
>> CountDim(td)
Since td
is a 3-dimensional mxArray
, CountDim creates a 2-by-2-by-2 mxArray
. If td
had been a 4-dimensional mxArray
, CountDim
would have created a 2-by-2-by-2-by-2.
For an additional example, see mxgetnumberofdimensions.c
in the mx
subdirectory of the examples
directory.
See Also
mxSetM
, mxSetN
[ Previous | Help Desk | Next ]