数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 3239|回复: 2

[求助]C++Builder与Matlab数据交换问题?!好晕呀!!!

[复制链接]
发表于 2005-11-11 23:38:24 | 显示全部楼层 |阅读模式
<>各位大侠:<BR>       我正在尝试C++Builder与matlab混合编程,但发现了一些问题,一直解决不了,请各位大侠指点指点,在下感激不禁!!!<BR>       我是在C++Builder 5 中应用matlab engine进行matlab函数调用的,在头文件中添加了Engine.h的引用,并进行了Project|Option路径的相关设置,以及用Implib将_libeng.def、_libmx.def和_libmat.def分别生成了*.lib文件,放在文件目录下,并在Add to Project。<BR>       在C++Builder的Form1中添加一按钮,其代码如下:<BR>       void __fastcall TForm1::Button1Click(TObject *Sender)<BR>       {     <BR>          Engine *eng;<BR>         char buffer[256];<BR>         int array[6]={1,2,3,4,5,6};<BR>         mxArray *s=NULL;<BR>         mxArray *t=NULL;<BR>         <BR>         if (!(eng = engOpen("\0"))) {<BR>                       fprintf(stderr, "\nCan't start MATLAB engine\n");<BR>                       exit(-1);<BR>          }<BR>          s=mxCreateDoubleMatrix(1,6,mxREAL);<BR>          mxSetName(s,"s");<BR>          memcpy((void *)mxGetPr(s),(void *)array,sizeof(array)); //好象问题就出在这行,  值传不进Matlab工作空间<BR>          engPutArray(eng,s);<BR>          engEvalString(eng,"s=s*2;");<BR>          engEvalString(eng,"t=1:6;");<BR>          engEvalString(eng,"plot(t,s);");<BR>          engEvalString(eng, "close;");<BR>          engClose(eng);<BR>          mxDestroyArray(s);<BR>          mxDestroyArray(t);<BR>     }<BR><BR>     运行结果:matlab中画板是一片灰色,没有任何数据图形。<BR>     请高手指点,谢谢!</P>
发表于 2005-11-13 01:05:42 | 显示全部楼层
<>我试试看。</P>
 楼主| 发表于 2005-11-13 21:22:56 | 显示全部楼层
<>谢谢大侠!!!</P>
<>多多指点!</P>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-27 06:19 , Processed in 0.059155 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表