传值不成功的问题~求助求助~

sissi_liqian 2011-11-17 07:38:27
VC和MATALB混编

悲剧的事情
一个简单的例子:
CString str;
double rdata[4] = {1.0, 2.0, 3.0, 4.0};
double data_copy[4] ;
mwArray a(2, 2, mxDOUBLE_CLASS);
a.SetData(rdata, 4);
str.Format("%f",a(1,1));
AfxMessageBox(str);


新建一个工程,放进去就能够传值成功,但是把这段代码放到我自己的工程中传过来的总是零。。。
怎么回事啊?有什么需要设置的吗?
...全文
238 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sissi_liqian 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pathuang68 的回复:]

把你的SetData()这个函数的代码贴出来看看,应该是这个函数的问题。
还有a是一个什么样的对象?把它的相关代码也贴出来看看。

要么自己单步调试一下,这可是锻炼的好机会。
[/Quote]
问题是这个SetData()就不是我写的,貌似是现成的,就跟sin一样的感觉。
mwArray w(2, 2, mxDOUBLE_CLASS);

w(1,1) = 11.;

w(1,2) = 12.;

w(2,1) = 21.;

w(2,2) = 22.;
cout<<"%f"<<"\t"<<w(1,1);
cout<<"%f"<<"\t"<<w(1,2);
cout<<"%f"<<"\t"<<w(2,1);
cout<<"%f"<<"\t"<<w(2,2);
这段代码在新工程里就能运行,放到我的工程里面就全是零。。。
写到文件里也是零
我很无语。。。
sissi_liqian 2011-11-18
  • 打赏
  • 举报
回复
给大家提供一个解决方案咯~
就是强制类型转换成double 型
就可以正常输出咯~
例:
FILE *fpTemp;
fpTemp = fopen("F://dataA.txt", "w+");
for (UINT i = 1; i <=t_rownum; i++)
{
for (UINT j = 1;j<=t_colnum_a ; j++)
{
double ddTEMP = (double)A(i,j);
fprintf(fpTemp, "%lf", ddTEMP);

}
fprintf(fpTemp,"\n");

}
fclose(fpTemp);
pathuang68 2011-11-17
  • 打赏
  • 举报
回复
把你的SetData()这个函数的代码贴出来看看,应该是这个函数的问题。
还有a是一个什么样的对象?把它的相关代码也贴出来看看。

要么自己单步调试一下,这可是锻炼的好机会。

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧