回 帖 发 新 帖 刷新版面

主题:C++Builder与Matlab 如何的数据传输。

此为在C++Builder调用Matlab引擎程序来完成一定的计算。
Engine *eng;
char buffer[200];
int array[6]={1,2,3,4,5,6,7};
mxArray *s=NULL,*T=NULL;
engOpen(NULL);
s=mxCreatDoubleMatrix(1,6,mxREAL);
mxSetName;
memcpy((char *)mxGetPr(s),(char *)array,6*sizeof(int));
engPutVariable(eng,"s",s);
engEvalString(eng,"t=s/s.^2;");
…………

这是一本书上的一段程序,可是不经过调试发现,得在engOpen(NULL);前加一个eng=
才能通过。但是发现s 根本是空的,没有传入数据。后面用绘图命令,也给出是空图。
另外mxSetName 这个命令已不支持6.5及以后的版本。
对memcpy((char *)mxGetPr(s),(char *)array,6*sizeof(int));这个命令的功能还是不太明白。

请问在C++Builder 与Matalb之间传递数据,还有其他方法吗?上述的方法有什么问题。



回复列表 (共1个回复)

沙发


如果是在BCB里面调用matlab  lib/obj的话,我倒是实现过,但是你现在用引擎的话,我就不太清楚了。前者有不懂的可以问我,请看本版的置顶贴。

我来回复

您尚未登录,请登录后再回复。点此登录或注册