MATLAB 实用教程 第11 章 编译器与外部接口 1 / 8 11.4 VC 调用MATLAB 引擎 1、 设置 VC 的头文件和库文件的搜索路径 在【工具】----【选项】中设置相应的路径: 2、 建立工程 【文件】----【新建】弹出的对话框中,选择【工程】,然后选择【MFC AppWizard[exe]】。 MATLAB 实用教程 第11 章 编译器与外部接口 2 / 8 到这里就不需要继续下一步了,直接【完成】即可。也可以全部下一步,按默认选项,最后点击【完成】即可。 3、 添加源文件 【文件】----【新建】,弹出对话框中选则【文件】,选择【C++ Sou rce File】,把【添加到工程】前面打勾,输入文件名 Data_interpolation.cpp。 MATLAB 实用教程 第11 章 编译器与外部接口 3 / 8 以下为源程序内容 //注意如果engEv alString()中的内容一行写不下,必须用“\”连接下一行,不然会报错。 #inclu de"stdafx .h" #inclu de"engine.h" MATLAB 实用教程 第11 章 编译器与外部接口 4 / 8 void interpolation() { Engine *wm; if(!(wm=engOpen(NULL))) MessageBox(NULL,"无法打开MATLAB 引擎","数据插值",MB_OK); engEvalString(wm,"rand('seed',0);\ //如果不用“\”连接下一行,编译会报错。 x=rand(100,1)*4-2;y=rand(100,1)*4-2;"); engEvalString(wm,"z=100*(y.^3-x.^2);"); engEvalString(wm,"ti=0:0.05:2;"); engEvalString(wm,"[XI,YI]=meshgrid(ti,ti);"); engEvalString(wm,"ZI=griddata(x,y,z,XI,YI);"); engEvalString(wm,"surf(XI,YI,ZI);\ //如果不用“\”连接下一行,编译会报错。 title('数据插值三维曲面图');\ //如果不用“\”连接下一行,编译会报错。 xlabel('x');ylabel('y');zlabel('z');grid on"); MessageBox(NULL,"插值计算完毕","数据插值",MB_OK); } 4、 添加菜单项 在左侧的工作窗口中选择【Resource】,然后选择【Menu】,开始编辑菜单栏。增加【数据插值】菜单,并增加【执行】项。双击空白方框就会弹出添加菜单的对话框。 MATLAB 实用教程 第11 章 编译器与外部接口 5 / 8 5、 编写消息处理函数 鼠标左键单击新建立的【执行】菜单项,然后右键选择【建立类向导】,弹出的对话框如下所示。选中【Message:】中的【COMMAND】,右侧的【Add Fu nction】就会由灰变黑。点击【Add Fu nction】,弹出的对话框中使用默认的函数名,点击【OK】关闭对话框。 然后再点...