解析matlab数组和C++数组的区别:
(1)matlab可以不用声明,直接使用;C++使用前必须声明。
(2)matlab数组下标从1开始;C++数组下标从0开始。
(3)matlab数组是列优先;C++数组行优先。
二维数组:
void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
double *a_ptr;
const int *dim_array;
int number_of_dims;
a_ptr=mxGetPr(prhs[0]);
number_of_dims = mxGetNumberOfDimensions(prhs[0]); //获取维数
dim_array = mxGetDimensions(prhs[0]); //维数数组
//二维可以用 mxGetM, mxGetN,获得矩阵的行数和列数
int numARows = *dim_array;
int numACols = *(dim_array+1);
printf("%d %d \n",numARows,numACols);
int i,j,k;
printf("%f\n", a_ptr[0]);
//打印数据
for (i=0;i<numARows; i++)
{
for (j=0; j<numACols; j++)
{