Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-08-31
年龄: 44
帖子: 1
声望力: 0 ![]() |
![]()
求助:如何打印出二维数组元素
我用c写了个矩阵转置的接口函数,代码如下: #include "mex.h" void mexFunction(int nlhs, mxArray *plhs[], int nrhs,const mxArray *prhs[]) { int rowNum,colNum,i,j; double*p,*q; if (nrhs!=1) { mexErrMsgTxt("参数个数不正确"); } rowNum = mxGetM(prhs[0]); colNum = mxGetN(prhs[0]); p = mxGetPr(prhs[0]); mexPrintf("\np[3]=%d",p[3]); plhs[0] = mxCreateDoubleMatrix(colNum, rowNum,mxREAL); q = mxGetPr(plhs[0]); for (i = 0; i< rowNum;i++) { for(j = 0; j<colNum;j++) { q[i*colNum+j] = p[j*rowNum+i]; } } } 我输入矩阵A = [1 2; 3 4; 5 6; 7 8],现调用该函数后想打印出p[3]的值(即想打印A(4,1)的值,发现结果出错,打印显示p[3]=0,正确结果应该是p[3]=7啊。请问是哪里出错了吗? |
![]() |
![]() |