![]() |
求助:如何打印二维数组元素
求助:如何打印出二维数组元素
我用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]); [COLOR="Red"]mexPrintf("\np[3]=%d",p[3]);[/COLOR] 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啊。请问是哪里出错了吗? |
回复: 求助:如何打印二维数组元素
你到底是要matlab的,还是c的
[B][COLOR="Red"]matlab的[/COLOR][/B] [font=Consolas][u]Matlab语言[/u]: [color=#000000]A[/color] [color=#000000]=[/color] [color=#000000][[/color][color=#000000]1 2[/color];[color=#000000] 3 4[/color];[color=#000000] 5 6[/color];[color=#000000] 7 8[/color][color=#000000]];[/color] [color=#000000][[/color][color=#000000]m[/color][color=#000000],[/color]n[color=#000000]][/color] [color=#000000]=[/color] [color=#000000]size[/color]([color=#000000]A[/color]); [color=#000000]fprintf[/color]([color=#000000]1[/color][color=#000000],[/color][color=#0000ff]'A=\n'[/color]); [color=#000080]for[/color] [color=#000000]i[/color][color=#000000]=[/color][color=#000000]1[/color][color=#000000]:[/color][color=#000000]m[/color] [color=#000080]for[/color] [color=#000000]j[/color][color=#000000]=[/color][color=#000000]1[/color][color=#000000]:[/color]n [color=#000000]fprintf[/color]([color=#000000]1[/color][color=#000000],[/color][color=#0000ff]'%d\t'[/color][color=#000000],[/color][color=#000000]A[/color]([color=#000000]i[/color][color=#000000],[/color][color=#000000]j[/color])); [color=#000080]end[/color] [color=#000000]fprintf[/color]([color=#000000]1[/color][color=#000000],[/color][color=#0000ff]'\n'[/color]); [color=#000080]end[/color] [color=#000000]fprintf[/color]([color=#0000ff]'\n'[/color]); [color=#000000]A[/color] [color=#000000]=[/color] [color=#000000]A[/color][color=#000000]'[/color]; [color=#000000][[/color][color=#000000]m[/color][color=#000000],[/color]n[color=#000000]][/color] [color=#000000]=[/color] [color=#000000]size[/color]([color=#000000]A[/color]); [color=#000000]fprintf[/color]([color=#000000]1[/color][color=#000000],[/color][color=#0000ff]'A''=\n'[/color]); [color=#000080]for[/color] [color=#000000]i[/color][color=#000000]=[/color][color=#000000]1[/color][color=#000000]:[/color][color=#000000]m[/color] [color=#000080]for[/color] [color=#000000]j[/color][color=#000000]=[/color][color=#000000]1[/color][color=#000000]:[/color]n [color=#000000]fprintf[/color]([color=#000000]1[/color][color=#000000],[/color][color=#0000ff]'%d\t'[/color][color=#000000],[/color][color=#000000]A[/color]([color=#000000]i[/color][color=#000000],[/color][color=#000000]j[/color])); [color=#000080]end[/color] [color=#000000]fprintf[/color]([color=#000000]1[/color][color=#000000],[/color][color=#0000ff]'\n'[/color]); [color=#000080]end[/color] [/font] ============== [B][COLOR="Red"]C++的[/COLOR][/B] [font=Consolas][u]C++语言[/u]: [color=#000080]void[/color] [color=#000000]transMat[/color]([color=#000080]int[/color] [color=#000000]**[/color][color=#000000]a[/color][color=#000000],[/color] [color=#000080]int[/color] [color=#000000]**[/color]b[color=#000000],[/color] [color=#000080]int[/color] N[color=#000000],[/color] [color=#000080]int[/color] [color=#000000]M[/color]) [color=#000000]{[/color] [color=#000080]for[/color] ([color=#000080]int[/color] [color=#000000]i[/color][color=#000000]=[/color][color=#0000ff]0[/color];[color=#000000]i[/color][color=#000000]<[/color]N;[color=#000000]i[/color][color=#000000]++[/color]) [color=#000080]for[/color] ([color=#000080]int[/color] [color=#000000]j[/color][color=#000000]=[/color][color=#0000ff]0[/color];[color=#000000]j[/color][color=#000000]<[/color][color=#000000]M[/color];[color=#000000]j[/color][color=#000000]++[/color]) [color=#000000]*[/color](([color=#000080]int[/color][color=#000000]*[/color])b[color=#000000]+[/color]N[color=#000000]*[/color][color=#000000]j[/color][color=#000000]+[/color][color=#000000]i[/color]) [color=#000000]=[/color] [color=#000000]*[/color](([color=#000080]int[/color][color=#000000]*[/color])[color=#000000]a[/color][color=#000000]+[/color][color=#000000]M[/color][color=#000000]*[/color][color=#000000]i[/color][color=#000000]+[/color][color=#000000]j[/color]); [color=#000000]}[/color] [/font] [B][COLOR="Red"]调用[/COLOR][/B] [font=Consolas][u]C++语言[/u]: [color=#000080]int[/color] [color=#000000]main[/color]([color=#000080]int[/color] [color=#000000]argc[/color][color=#000000],[/color] [color=#000080]char[/color] [color=#000000]*[/color][color=#000000]argv[/color][color=#000000][])[/color] [color=#000000]{[/color] [color=#000080]int[/color] [color=#000000]A[/color][color=#000000][[/color][color=#0000ff]4[/color][color=#000000]][[/color][color=#0000ff]2[/color][color=#000000]][/color] [color=#000000]=[/color] [color=#000000]{{[/color][color=#0000ff]1[/color][color=#000000],[/color][color=#0000ff]2[/color][color=#000000]},{[/color][color=#0000ff]3[/color][color=#000000],[/color][color=#0000ff]4[/color][color=#000000]},{[/color][color=#0000ff]5[/color][color=#000000],[/color][color=#0000ff]6[/color][color=#000000]},{[/color][color=#0000ff]7[/color][color=#000000],[/color][color=#0000ff]8[/color][color=#000000]}};[/color] [color=#000080]int[/color] B[color=#000000][[/color][color=#0000ff]2[/color][color=#000000]][[/color][color=#0000ff]4[/color][color=#000000]][/color] [color=#000000]=[/color] [color=#000000]{[/color][color=#0000ff]0[/color][color=#000000]};[/color] [color=#000080]int[/color] N[color=#000000]=[/color][color=#0000ff]4[/color][color=#000000],[/color][color=#000000]M[/color][color=#000000]=[/color][color=#0000ff]2[/color]; [color=#000000]printf[/color]([color=#0000ff]"A=[/color][color=#0000ff]\n[/color][color=#0000ff]"[/color]); [color=#000080]for[/color] ([color=#000080]int[/color] [color=#000000]i[/color][color=#000000]=[/color][color=#0000ff]0[/color];[color=#000000]i[/color][color=#000000]<[/color]N;[color=#000000]i[/color][color=#000000]++[/color]) [color=#000000]{[/color] [color=#000080]for[/color] ([color=#000080]int[/color] [color=#000000]j[/color][color=#000000]=[/color][color=#0000ff]0[/color];[color=#000000]j[/color][color=#000000]<[/color][color=#000000]M[/color];[color=#000000]j[/color][color=#000000]++[/color]) [color=#000000]printf[/color]([color=#0000ff]"%d[/color][color=#0000ff]\t[/color][color=#0000ff]"[/color][color=#000000],[/color][color=#000000]A[/color][color=#000000][[/color][color=#000000]i[/color][color=#000000]][[/color][color=#000000]j[/color][color=#000000]]);[/color] [color=#000000]printf[/color]([color=#0000ff]"[/color][color=#0000ff]\n[/color][color=#0000ff]"[/color]); [color=#000000]}[/color] [color=#000000]transMat[/color](([color=#000080]int[/color][color=#000000]**[/color])[color=#000000]A[/color][color=#000000],([/color][color=#000080]int[/color][color=#000000]**[/color])B[color=#000000],[/color]N[color=#000000],[/color][color=#000000]M[/color]); [color=#000000]printf[/color]([color=#0000ff]"[/color][color=#0000ff]\n[/color][color=#0000ff]A'=[/color][color=#0000ff]\n[/color][color=#0000ff]"[/color]); [color=#000080]for[/color] ([color=#000080]int[/color] [color=#000000]i[/color][color=#000000]=[/color][color=#0000ff]0[/color];[color=#000000]i[/color][color=#000000]<[/color][color=#000000]M[/color];[color=#000000]i[/color][color=#000000]++[/color]) [color=#000000]{[/color] [color=#000080]for[/color] ([color=#000080]int[/color] [color=#000000]j[/color][color=#000000]=[/color][color=#0000ff]0[/color];[color=#000000]j[/color][color=#000000]<[/color]N;[color=#000000]j[/color][color=#000000]++[/color]) [color=#000000]printf[/color]([color=#0000ff]"%d[/color][color=#0000ff]\t[/color][color=#0000ff]"[/color][color=#000000],[/color]B[color=#000000][[/color][color=#000000]i[/color][color=#000000]][[/color][color=#000000]j[/color][color=#000000]]);[/color] [color=#000000]printf[/color]([color=#0000ff]"[/color][color=#0000ff]\n[/color][color=#0000ff]"[/color]); [color=#000000]}[/color] [color=#000000]}[/color] [/font] [B][COLOR="Red"]结果[/COLOR][/B] [font=Consolas][u]C++语言[/u]: [color=#000000]A[/color][color=#000000]=[/color] [color=#0000ff]1[/color] [color=#0000ff]2[/color] [color=#0000ff]3[/color] [color=#0000ff]4[/color] [color=#0000ff]5[/color] [color=#0000ff]6[/color] [color=#0000ff]7[/color] [color=#0000ff]8[/color] [color=#000000]A[/color][color=#a61717]'[/color][color=#000000]=[/color] [color=#0000ff]1[/color] [color=#0000ff]3[/color] [color=#0000ff]5[/color] [color=#0000ff]7[/color] [color=#0000ff]2[/color] [color=#0000ff]4[/color] [color=#0000ff]6[/color] [color=#0000ff]8[/color] [/font] |
所有时间均为北京时间。现在的时间是 05:16。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.