主题: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之间传递数据,还有其他方法吗?上述的方法有什么问题。
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之间传递数据,还有其他方法吗?上述的方法有什么问题。