BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #3770同步于 2008/5/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

【求助】请教VC当中调用M文件的问题

iceboy
2008/5/28镜像同步0 回复
MATLAB已经编译好,产生的 .h .lib .dll 3个文件都已经拷到VC程序文件里,但是目前不知道怎么在程序里调用这些文件。http://www.cnitblog.com/edaiqingwa/archive/2006/12/18/20741.html这是我在网上看的一个教程,里面到最后VC关于接口和数据类型的转换 实现的源代码是 void CMatDlg::OnButton1() { // 在 matlab 中定义的 m 文件 :myfunct ,其功能是完成两个数的相加操作。 CString str; UpdateData(true); pppInitialize(); // 为了调用 matlab 中的函数,必须使用数组数据类型,并其后调用 matlab 函数将其转化为矩阵格式( matlab 的基本数据类型是矩阵) static double x1[1]={1.0}; static double x2[1]={2.5}; double result; // 调用 matlab 创建 3 个矩阵 mxArray *A=mclGetUninitializedArray(); mxArray *B=mclGetUninitializedArray(); mxArray *C=mclGetUninitializedArray(); // 将 C 语言中的变量值赋给 matlab 中的矩阵 mlfAssign(&A,mlfDoubleMatrix(1,1,x1,NULL)); mlfAssign(&B,mlfDoubleMatrix(1,1,x2,NULL)); mlfAssign(&C,mlfMyfunct(A,B)); // 将 matlab 中的矩阵的指针传递给 C 语言中的指向 double 的指针 double * md=mxGetPr(C); result=md[0]; // 释放这些矩阵 mxDestroyArray(A); mxDestroyArray(B); mxDestroyArray(C); str.Format ("It is : %f",result); ::AfxMessageBox(str); } 请问这个源代码是不是适用于所有的M文件呢?
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。