版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 MATLAB混合编程技术,5.1 概述,利用MATLAB COM生成器和Excel 生成器,可以快速实现基于MATLAB的混合编程,实现复杂的算法应用。,5.2COM生成器(COM Buuilder),COM(Component Object Model,组件对象模型)是以组件为发布单元的对象模型,是一系列面向对象技术和工具的集合。 由于COM是建立在二进制级别上的规范,所以组件对象之间的交互规范不依赖于任何特定的语言。 MATLAB提供了COM生成器。COM生成器提供了实现MATLAB独立应用的一种新途径。它能把MATLAB开发的算法做成组件,这些组件作为独立的COM对象,可以直接被
2、C+、VB、VC、C#、JAVA或其他支持COM的语言所引用,5.2.1 创建nnToolKit的COM组件,1创建nnToolKit工程(MATLAB6.5环境下) 在MATLAB命令行中输入命令comtool,打开MATLAB COM Builder对话框,5.2.1 创建nnToolKit的COM组件,在“File”菜单中选择“New Project”选项,将弹出“New Project Setting”对话框 填写相关项目后点“OK” ,弹出确认对话框。,5.2.1 创建nnToolKit的COM组件,点击OK按钮,将在指定目录下自动创建一个新的工程文件nnToolKit.cbl,5.
3、2.1 创建nnToolKit的COM组件,2管理M文件 点击Add File按钮或从Project菜单中选择Add File选项,将已调试好的神经网络相关函数(LmTrain.m、LmSimu.m等)加入到项目中。,5.2.1 创建nnToolKit的COM组件,3生成nnToolKit组件 通过“Build”菜单中的“COM Object”选项或直接点击“Build”按钮来调用MATLAB编译器,把中间源文件写到D:MATLAB6p5worknnToolKitsrc目录中,将必要的输出文件写到D:MATLAB6p5worknnToolKitdistrib目录中,“Build Status”
4、面板显示生成过程的输出如图所示,5.2.1 创建nnToolKit的COM组件,4打包和分发组件 从“Component”菜单中选择“Package Component”选项,将创建安装文件,点击安装文件即可在想要安装的机器上安装该工具包,5.2.2 nnToolKit组件的安装,直接运行nnToolKit.exe自解压安装文件,按提示继续操作,完成相关组件的注册,直至nnToolKit工具包安装成功 。,5.2.2 nnToolKit组件的安装,根据系统安装时的提示,手工配置环境变量信息。 若工具包安装在C:2NSOFTPFnnToolKit目录,则配置操作如下: 我的电脑-属性-环境变量,
5、将“C:2NSOFTPFnnToolKitbinwin32”加到path路径中。,5.2.3 VB调用nnToolKit神经网络工具包实现混合编程,1、创建神经网络应用工程 打开Visual Basic开发环境,并创建一个新的工程,取名为NetProj。在NetProj工程中,创建两个模板文件CBpnFile.bas,CNetPara.bas和三个窗体表单文件frmAbout.frm,frmLmNet.frm,frmUnitary.frm,其中frmLmNet.frm为系统主界面,在空白的窗体中添加控件,如图5-6所示,并按表5-2中的内容设置控件属性,5.2.3VB调用nnToolKit神经
6、网络工具包实现混合编程,2、在工程中引用nnToolKit库 点击菜单“Project/References”,加载nnToolKit类型库。,5.2.3 VB调用nnToolKit神经网络工具包实现混合编程,在Visual Basic环境下,点击View/Object Browser” 类中成员函数的参数形式与.M文件里的参数形式是不同的,5.2.3 VB调用nnToolKit神经网络工具包实现混合编程,VB调用nnToolKit神经网络工具包程序,5.2.3 VB调用nnToolKit神经网络工具包实现混合编程,系统运行时,为何报下图所示的错误? 1、神经网络工具包未能正确安装。平台安装到
7、最后时会出现一个DOS界面(用户如果直接关掉该安装界面,将致使神经网络工具包未能安装),如果是第一次安装,用户一般只需选择默认安装即可(回车操作),如果以前安装过,请选择覆盖操作; 2、多次安装工具包时未能将以前的应用删除掉从而导致。如果是这种情况,请将以前的安装过程中产生的相应文件夹(bin及toolbox)及文件删除掉,再重新安装工具包,安装过程中最好选择默认安装; 3、系统中曾安装多个MATLAB的不同版本,如同时安装有MATLAB6.5,MATLAB7.0,则要求修改环境变量的配置信息; 4、未正确配置环境变量,5.2.4 CB调用nnToolKit神经网络工具包实现混合编程,在CB中
8、创建基于nnToolKit的自定义VCL组件 在图书配套的源程序中,已经建有一个VCL工程,打开项目文件nnToolKit.bpk,出现右图所示的对话框:,5.2.4 CB调用nnToolKit神经网络工具包实现混合编程,编译项目文件后,再点击“install”操作,安装完成后,在当前开发环境下的ActiveX的组件页中会出现nnToolKit ActiveX控件,如下图所示:,5.2.4 CB调用nnToolKit神经网络工具包实现混合编程,2创建神经网络应用工程 打开C+ Builder开发环境,并创建一个新的工程,取名为NetProj。在主窗体中加载一个TPageControl控件,并在
9、其中增加两个页面,一个对应网络训练,如右图所示,5.2.4 CB调用nnToolKit神经网络工具包实现混合编程,2创建神经网络应用工程 打开C+ Builder开发环境,并创建一个新的工程,取名为NetProj。在主窗体中加载一个TPageControl控件,并在其中增加两个页面,一个对应网络仿真,如右图所示,5.2.4 CB调用nnToolKit神经网络工具包实现混合编程,3加载nnToolKit ActiveX控件 从工具条ActiveX的组件页中,将nnToolKit ActiveX控件拖至设计窗体中,这时在头文件中将自动加入一行: #include nnToolKit_OCX.h 在
10、构造函数中自动定义一个类TnnToolKit对象: TnnToolKit *nnToolKit1; 在实现文件中也会自动加入一行: #pragma link nnToolKit_OCX,5.2.4 CB调用nnToolKit神经网络工具包实现混合编程,程序,5.2.5 VC调用nnToolKit神经网络工具包实现混合编程,1创建MFC工程打开Viusal C+,新建一个MFC AppWizardexe单文档工程lm。在“操作”菜单中增加两个菜单项“训练”和“仿真”,同时在工程中相应增加两个对话框,类名为CSDlg和CTDlg,分别对应“训练”和“仿真”菜单项。 “训练”界面设计如右图,5.2.
11、5 VC调用nnToolKit神经网络工具包实现混合编程,“仿真”界面设计如右图所示,5.2.5 VC调用nnToolKit神经网络工具包实现混合编程,2将nnToolKit动态库导入VC 使用MFC ClassWizard,添加一个新类,选择From a type of library,在弹出的对话框中选中nnToolKit.dll,5.2.5 VC调用nnToolKit神经网络工具包实现混合编程,确定后,在workspace中可以发现这时自动产生了类InnToolKit。,5.2.5 VC调用nnToolKit神经网络工具包实现混合编程,VC调用nnToolKit神经网络工具包程序,5.3
12、 Excel生成器(Excel Builder),MATLAB还提供了一个称为Excel生成器的工具,利用该工具,可以生成DLL组件和VBA代码。利用DLL组件,可以进行与前面COM生成器组件相似的操作。VBA代码可以在Excel的Visual Basic编辑器中直接使用,可以保存为插件(Add-Ins)。 Excel生成器创建的COM对象暴露给VB程序环境一个类,该类包含一系列称为方法的函数,对应于包含在组件工程中的原始MATLAB函数。,5.3 Excel生成器(Excel Builder),5.3.1 创建nnxToolKit的Excel插件 1创建nnxToolKit工程 在MATLA
13、B命令行中输入命令mxltool,打开MATLAB Excel生成器主窗口,5.3.1 创建nnxToolKit的Excel插件,2管理M文件和MEX文件(神经网络相关函数) 创建工程后,主窗口的“Project”,“Build”和“Component”等菜单选项变为可用,点击“Add File”按钮或从“Project”菜单中选择“Add File”选项,在工程中将已调试好的神经网络相关函数(LmTrain.m、LmSimu.m等)加入到项目中。 使用Remove按钮或从Project菜单中选择Remove File选项,将删除所有已经选定的M文件或MEX文件。点击Edit按钮或从Proje
14、ct菜单中选择Edit File选项,或双击M文件的文件名,将在MATLAB编辑器中打开选定的M文件,并可以进行修改和调试。,5.3.1 创建nnxToolKit的Excel插件,3生成nnxToolKit组件 定义好工程设置并添加了相关神经网络函数后,点击Build按钮来调用MATLAB编译器,生成一个可配置的DLL文件和必要的VBA代码。在工程目录下生成srcdistrib两个目录,分别放置中间源文件和输出文件,5.3.1 创建nnxToolKit的Excel插件,4打包和发布组件 如果模块编译成功,并且创建了Excel插件以后,就可以包装组件生成自解压可执行程序的名称为nnxToolKi
15、t.exe,5.3.2 nnxToolKit组件的安装,直接运行nnxToolKit.exe安装文件,程序首先完成自解压,然后进入安装过程,具体步骤类似于nnToolKit的安装 。 安装过程演示,5.3.3 nnxToolKit组件集成到VBA,1)启动Excel。 2)从Excel主菜单中,按顺序选择“工具”“宏”“Visual Basic编辑器”,启动Excel的Visual Basic编辑器。 3)在编辑器的“工具”菜单中选择“引用”选项,显示“引用”对话框。在该对话框中选择nnxToolKit 1.0 Type Library和MWComUtil 1.0 Type Library。
16、插件需要一些初始化代码和一些全局变量来控制应用程序的状态。要达到这个目的,按照后面的步骤实现Visual Basic代码模块。 4)在工程窗口中右击VBAProject选项并从弹出式菜单中按顺序选择“插入”“模块”。 5)在VBAProject中的Modules下面出现一个新的模块。在该模块的属性页中,将Name属性设置为LmNetMain,如图所示。,5.3.3 nnxToolKit组件集成到VBA,在LmNetMain模块中输入下面的代码,5.3.4 创建图形用户界面,按照以下步骤创建一个新的用户窗体,并在窗体上添加必要的控件。 1) 在工程窗口中右击VBAProject选项,并从弹出式菜
17、单中按顺序选择“插入” “用户窗体”选项。 2) 现在,在VBA工程中,一个新的窗体显示在Forms下面。在窗体的属性页中,将Name属性设置为frmLmNet,将Caption属性设置为:VBA调用nnxToolKit示例。 3) 给空白的窗体中添加控件,如图5-20所示,并按表5-4中的内容设置控件属性。,5.3.4 创建图形用户界面,右击窗体并从弹出式菜单中选择“查看代码”选项。然后在代码窗口中输入下面的代码,5.3.4 创建图形用户界面,集成的最后一步是给Excel添加一个菜单选项。这样,就可以从Excel的“工具”菜单中调用该工具了。进行这一步工作,需要为工作簿的AddinInsta
18、ll和AddinUninstall事件添加事件句柄。该菜单项调用LoadLmNet模块中的LoadLmNet函数。按照下面的步骤实现菜单选项: 在Visual Basic工程窗口中右击ThisWorkbook选项,并从弹出式菜单中选择“查看代码”选项,结果如图5-21所示。,5.3.4 创建图形用户界面,将下面的代码放到ThisWorkbook对象中,5.3.5 保存和测试插件,1) 将插件命名为“VBA调用nnxToolKit示例”,按照下面的步骤保存它: 在Excel主菜单中依次选择“文件”“属性”; 当“Workbook属性”对话框出现时,选择“摘要信息”选项卡,并输入“VBA调用nnx
19、ToolKit示例”作为工作簿的标题; 点击“OK”,保存编辑内容; 从Excel主菜单中依次选择“文件”“另存为”; 在“另存为”对话框中选择“Microsoft Excel Add-In(*.xla)”作为文件类型; 输入“LmNet.xla”作为文件名,并点击“保存”按钮,保存插件。 在分发插件以前,对它进行测试。,5.3.5 保存和测试插件,2) 通过下面的步骤完成示例程序: 启动一个新的Excel进程,它有一个空白的工作簿; 从菜单中依次选择“工具”“加载”,打开“加载宏”对话框; 在“加载宏”对话框中单击“浏览”按钮; 找到LmNet.xla文件并单击“确定”按钮; 在列表框中找到
20、“VBA调用nnxToolKit示例”插件,选择它; 点击“OK”按钮,装载插件。 本插件在Excel的“工具”菜单下安装一个菜单项。可以通过依次选择“工具”“VBA调用nnxToolKit示例”来显示本神经网络应用的图形用户界面。,5.3.6 分发应用程序,将COM组件和所有的支持库打包到一个自解压可执行程序nnxToolKit.exe中。这样,本包就可以安装到其他需要使用nnxToolKit组件的计算机上了。同样需要将LmNet.xla文件复制到所有的在Excel中使用本组件的计算机中。,5.3.7 应用示例,1案例描述 窃电者为了达到窃电目的,往往采用各种窃电手法进行窃电,手法五花八门,但万变不离其宗,最常见的是从电能计量原理入手。一个电能表计量电量的多少,主要决定于电压、电流、功率因数三因素和时间的乘积,因此,只要想办法改变三要素中的任何一个要素都可以使电表慢转、停转甚至反转,从而达到窃电的目的;另外,通过采用改变电能表本身的结构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年注册安全工程师真题+答案(法规、管理、技术)
- 2025上教资考试《综合素质》真题试卷及参考答案(小学)
- 2025消防考试初级理论题库及答案
- 2025卫生资格护理学副高职称历年考试试题及答案解析
- 2026年2026人工智能训练师职业能力测试题x试卷+答案
- 2025中信银行校招笔试真题及答案
- 2026年电子商务师跨境电商基础考点真题模拟考试及答案
- 怎样预防肠道传染病
- 美洲钩虫和十二指肠钩虫的鉴别及流行分布
- 初中体育教资面试高频题及解析
- 设备预防性维护实施方案
- 陕西2025-2026学年九年级下学期语文中考模拟预测卷
- 2026年大队委选拔笔试题目及答案
- 世界历史九年级上册新教材分析(2026新版) 课件
- 2026年市政施工员继续教育考试卷题库附答案
- 高中语文统编五本教材诗词(情感+手法)汇-总
- 2026年智能油田决策支持系统:技术创新与实践应用
- (2026年)一例脓毒性休克患者的护理查房课件
- 学空翻安全协议书
- 【外科学9版】第37章结直肠与肛管疾病
- 水果茶制作课件
评论
0/150
提交评论