404 Accelerating MATLAB
®
Performance
double *data, minX, maxX, minY, maxY; /* input data */
double total = 0; /* output result */
double *dataPtr;
int row, col, numRows;
/* Check for proper number of input and output arguments */
if (nrhs != 5)
mexErrMsgIdAndTxt("YMA:MexSumSubmatrix:invalidNumInputs",
"5 inputs required: data,minX,maxX,minY,maxY");
if (nlhs > 1)
mexErrMsgIdAndTxt("YMA:MexSumSubmatrix:maxrhs",
"Too many output arguments.");
if (!mxIsDouble(prhs[0]))
mexErrMsgIdAndTxt("YMA:MexSumSubmatrix:invalidInput",
"Input data must be of type double.");
if (!nlhs)
return;
/* Get the input data */
data = mxGetPr(prhs[0]);
numRows = mxGetM(prhs[0]);
minX = mxGetScalar(prhs[1])-1;
maxX = mxGetScalar(prhs[2])-1; ...