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 当前离线   回复时引用此帖
旧 2011-04-09, 22:14   #2
libralibra
初级会员
 
libralibra 的头像
 
注册日期: 2007-12-07
帖子: 22
声望力: 18
libralibra 正向着好的方向发展
默认 回复: 求助:如何打印二维数组元素

你到底是要matlab的,还是c的

matlab的

Matlab语言:
A = [1 2; 3 4; 5 6; 7 8];
[m,n] = size(A);
fprintf(1,'A=\n');
for i=1:m
for j=1:n
fprintf(1,'%d\t',A(i,j));
end
fprintf(1,'\n');
end

fprintf('\n');

A = A';
[m,n] = size(A);
fprintf(1,'A''=\n');
for i=1:m
for j=1:n
fprintf(1,'%d\t',A(i,j));
end
fprintf(1,'\n');
end


==============
C++的

C++语言:
void transMat(int **a, int **b, int N, int M)
{
for (int i=0;i<N;i++)
for (int j=0;j<M;j++)
*((int*)b+N*j+i) = *((int*)a+M*i+j);
}


调用

C++语言:
int main(int argc, char *argv[])
{
int A[4][2] = {{1,2},{3,4},{5,6},{7,8}};
int B[2][4] = {0};

int N=4,M=2;

printf("A=\n");
for (int i=0;i<N;i++)
{
for (int j=0;j<M;j++)
printf("%d\t",A[i][j]);
printf("\n");
}

transMat((int**)A,(int**)B,N,M);

printf("\nA'=\n");
for (int i=0;i<M;i++)
{
for (int j=0;j<N;j++)
printf("%d\t",B[i][j]);
printf("\n");
}
}




结果

C++语言:
A=
1 2
3 4
5 6
7 8

A'=
1 3 5 7
2 4 6 8
__________________
接MATLAB图像处理项目,毕设.也可作vb作业.
QQ: 790404545

此帖于 2011-04-09 22:24 被 libralibra 编辑。
libralibra 当前离线   回复时引用此帖
回复

主题工具
显示模式

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

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



所有时间均为北京时间。现在的时间是 00:07


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