主题: [MATLAB混合编程] 求助:如何打印二维数组元素
查看单个帖子
旧 2011-04-06, 10:53   #1
herb001
初级会员
 
注册日期: 2009-08-31
年龄: 44
帖子: 1
声望力: 0
herb001 正向着好的方向发展
默认 求助:如何打印二维数组元素

求助:如何打印出二维数组元素
我用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啊。请问是哪里出错了吗?
herb001 当前离线   回复时引用此帖