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++中数值完全一样
展开
 我来答
百度网友4e923b8
2016-12-21 · TA获得超过132个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:10.2万
展开全部
memcpy(mxGetPr(aa), A, 3 * 3 * sizeof(double));换成
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以后的结果贴出来我看看
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式