How to pass an integer array from matlab to mex?
I want to pass an integer array from matlab to mex. The array is for example a=[1 2 3 4]. I wrote the following code: #include <math.h> #include <stdio.h> #include <stdlib.h> #include <mkl.h> #include "mkl_vml.h" #include "mex.h" #include "matrix.h" #include "mkl_vsl.h" /* main fucntion */ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { int n, *a; /* make pointers to input data */ n = (int)mxGetScalar(prhs[0]); a = (int *)mxGetData(prhs[1]); mexPrintf("a[0]:%d \t a[1]:%d \t a[2]:%d \n", a[0],a[1],a[2]); } When I run it the result is: a[0]:0 a[1]:1072693248 a[2]:0