Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切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 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 04:14


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.