I got a follow up question about Matlab mex function input/output 2D array format. For example, I have a variable '`outputBuff`' defined as C++ 2D integer array. After processing it, I want to output it as a 'plhs' (parameter at left hand side). Not sure how to do this.
      int** outputBuff;
      size_t col_outputBuff     = mxGetN(prhs[4]);
      size_t row_outputBuff     = mxGetM(prhs[4]);
      // Allocate the memory for 2D array
      outputBuff                  = (int **)mxCalloc(col_outputBuff, sizeof(int*));
      for(int x = 0; x < col_outputBuff; x++) {
          outputBuff[x] = (int *) mxCalloc(row_outputBuff, sizeof(int));
      }
      // Read in the data
      for (int col=0; col < col_outputBuff; col++) {
          for (int row=0; row < row_outputBuff; row++) {
              outputBuff[col][row] = ((int *)mxGetPr(prhs[4]))[row+col*row_outputBuff];
          }
      }
Then output it as `plhs`
const mwSize dims[]         = {col_outputBuff, row_outputBuff};
    plhs[0]                     = mxCreateNumericArray(2, dims, mxINT32_CLASS, mxREAL);
      mxArray *outputMatrix;
      outputMatrix                = mxCreateNumericMatrix(col_outputBuff, row_outputBuff, mxINT32_CLASS, mxREAL);
      outputBuff[0]               = (int *)mxGetPr(outputMatrix);
      outputMatrix                = (mxArray *)mxGetData(plhs[0]);
The codes can be compiled but output all zeros not as expected. Could you give me some hints? Thanks a lot.