
C++调用matlab :在C++中定义静态数组向matlab传递时,正常。定义指针动态数组时,传递的数值却不对?
doubledata[3][3]={1,0,1,0,2,0,0,0,3};memcpy(mxGetPr(aa),data,3*3*sizeof(double));//这个...
double data[3][3] = { 1,0,1,0,2,0,0,0,3 };memcpy(mxGetPr(aa), data, 3 * 3 * sizeof(double));//这个是正确的。。。。
double **A;
A = new double *[3];
for (int i = 0; i < 3; i++)
A[i] = new double[3];
memcpy(mxGetPr(aa), A, 3 * 3 * sizeof(double));//这样就出问题了,导入matlab中的数值根本不对。A[][]和data[][]在C++中数值完全一样 展开
double **A;
A = new double *[3];
for (int i = 0; i < 3; i++)
A[i] = new double[3];
memcpy(mxGetPr(aa), A, 3 * 3 * sizeof(double));//这样就出问题了,导入matlab中的数值根本不对。A[][]和data[][]在C++中数值完全一样 展开
1个回答
展开全部
memcpy(mxGetPr(aa), A, 3 * 3 * sizeof(double));换成
memcpy(mxGetPr(aa), &A, 3 * 3 * sizeof(double));试试0.0
我觉得是这个二维数组传递的问题,建议调试下这个A
memcpy(mxGetPr(aa), &A, 3 * 3 * sizeof(double));试试0.0
我觉得是这个二维数组传递的问题,建议调试下这个A
更多追问追答
追问
还是不对呀,但是在matlab中的数据发生变化了,变成下面这个样子
0.0000 0.0000 -9.2560
-9.2560 -9.2560 -9.2560
-9.2560 -9.2560 0.0000
追答
额。。你把正常的结果和&A以后的结果贴出来我看看
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询