精通 VC 与 MATLAB 联合编程——综合举例一

脖寇欺

脖寇欺

2016-01-29 12:27

精通 VC 与 MATLAB 联合编程——综合举例一,精通 VC 与 MATLAB 联合编程——综合举例一

精通 VC 与 MATLAB 联合编程<九>——综合举例一

作者:邓科

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)

工具:VC6.0 + MATLAB 6.5
实现功能:用户输入数据,完成数据的拟合
准备:在VC中设置库文件和头文件路径,参见联合编程 <6><7>
步骤:

1、建立一个名为ceshidll.m的M函数文件,该函数的功能是输入两组数完成两组数据的插值拟合,并将结果用图形表示:
ceshidll.m文件内容如下:

function ceshidll(x,y)a=min(x):0.1:max(x);b = interp1(x,y,a,''spline'');%一维插值函数plot(x,y,''*'',a,b);
2、在MATLAB Command中用如下命令编译函数ceshidll.m:
>> mcc -t -W libhg:dlltest -T link:lib -h libmmfile.mlib ceshidll.m
参数说明:-t 将m文件编译为CC++代码-W libhg:dlltest 生成使用C函数图形库的文件,生成的文件名为dlltest-T link:lib 生成库文件-h 辅助选项,可以将任何被调用的辅助函数都包含到编译的文件中libmmfile.mlib连接任何需要的共享函数库ceshidll.m 被编译的文件名
  编译完成后在MATLAB当前目录下会生成以下文件:ceshidll.c、ceshidll.h 、dlltest.c 、dlltest.exports、dlltest.h、dlltest.mlib、dlltest.exp、dlltest.lib、dlltest.dll。其中dlltest.h 、dlltest.lib和dlltest.dll文件是我们需要的。

3、建立一个名为Fit基于对话框的MFC(exe)工程。在面板上添加一个名为“拟合”的Button按钮,界面如图。



图1


4、将文件dlltest.h 、dlltest.lib和dlltest.dll拷贝到工程的当前目录下。并将文件dlltest.h 、dlltest.lib引入工程:在VC集成环境中使用菜单Project->Add to Projec->Files,选择刚拷贝到目录下的文件。
5、在程序中添加头文件,并引入库文件:
在FitDlg.cpp文件开始位置添加如下代码:
#include "matlab.h"#include "dlltest.h"#pragma comment(lib,"dlltest")
6、为程序添加代码。在JFC.cpp中为主程序添加代码。
关键代码:
UpdateData(TRUE);//刷新输入数据double X[100],Y[100];CString AA,BB,a; int i=1; mxArray *A=NULL;           //初始化矩阵 mxArray *B=NULL;    AA=m_edit1;             //字符串赋值    BB=m_edit2;.....//将字符转化为数字 mlfEnterNewContext(0, 0);//自动管理内存dlltestInitialize();mlfCeshidll(A,B);    //调用dll文件中函数mxDestroyArray(A);   //释放矩阵内存mxDestroyArray(B);mlfRestorePreviousContext(0, 0); 
编译、连接,运行结果如图2:

 

图2


  本例子中实际上还是使用的函数库,调用的函数库文件。不管是使用哪种接口方法,函数库文件都是最底层的东西,直接和CC++打交道,即使对7.0版本也一样,所以建议想学好接口编程的朋友,最好能熟练的掌握函数库。我的QQ:44760299。欢迎编程爱好者大家一起讨论。如果有时间下节介绍VC调用MATLAB神经网络工具箱的例子,并实现打包安装。

该系列的其它文章:浅析VC与MATLAB联合编程<一浅析VC与MATLAB联合编程<二浅析VC与MATLAB联合编程<三浅析VC与MATLAB联合编程<四精通VC与MATLAB联合编程<五精通VC与MATLAB联合编程<六精通VC与MATLAB联合编程<七精通VC与MATLAB联合编程<八

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)
展开更多 50%)
分享

猜你喜欢

精通 VC 与 MATLAB 联合编程——综合举例一

C语言教程 C语言函数
精通 VC 与 MATLAB 联合编程——综合举例一

精通VC与MATLAB联合编程——综合举例二

C语言教程 C语言函数
精通VC与MATLAB联合编程——综合举例二

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

精通VC与Matlab联合编程(五)

C语言教程 C语言函数
精通VC与Matlab联合编程(五)

精通VC与Matlab联合编程(六)

C语言教程 C语言函数
精通VC与Matlab联合编程(六)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

浅析VC与Matlab联合编程

C语言教程 C语言函数
浅析VC与Matlab联合编程

精通VC与MATLAB联合编程——编译器的使用

C语言教程 C语言函数
精通VC与MATLAB联合编程——编译器的使用

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

一步一步实现MFC扩展DLL中导出类和对话框

一步一步实现MFC扩展DLL中导出类和对话框

IIS6 和Tomcat5 的整合

IIS6 和Tomcat5 的整合
下拉加载更多内容 ↓