# MATLAB: Data extraction from MATLAB to mex-function setup

embedded matlabmexmexcallmatlabsort

Hi all,
I am trying to extract data calculated in the MATLAB environment into the mex-function set-up in vain. Could someone please point out the error in my code or anything that I am doing wrong?
int *aidx, *idx;const mxArray *m_sort[2], *m_pctemp[3];../* Necessary initializations for 'sort' is made and all is well so far */..    mexCallMATLAB(2, m_sort, 3, &m_pctemp, "sort"); // Works fine    /* Displays the correct data in 'm_sort' */    mexCallMATLAB(0, NULL, 1, &m_sort[0], "disp"); //(double)      mexCallMATLAB(0, NULL, 1, &m_sort[1], "disp"); //(int)     aidx = (int *)mxGetData(m_sort[1]);OR    aidx = mxGetPr(m_sort[1]);    idx = ivector(0, 23); // memory allocation with indices range(0-23)  for (i = 1; i <= 24; i++) // Matlab indices is from 1 to 24    idx[i-1] = aidx[i]; // Wrong values from aidx[] here
I will need the array m_sort[1] that holds the indices for further processing. It looks like I am not extracting the values properly. Both the APIs fail to give me the correct values.
I believe using mxGetData with proper casting (int *) is the right way to get the integer data from m_sort[1].
Am I right? If not, Please tell me what is the right way to do it? or if I should provide more information to get me off this problem.
int *idx;double *aidx;aidx = mxGetPr(m_sort[1]);...   idx[i-1] = (int) aidx[i];