论MATCOM在VC与MATLAB混合编程中的应用_第1页
论MATCOM在VC与MATLAB混合编程中的应用_第2页
论MATCOM在VC与MATLAB混合编程中的应用_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、论MATCOM在VC+与MATLAB混合编程中的应用     摘要  介绍了使用MATCOM实现VC+与MATLAB混合编程的优势和方法,并给出了实例。关键词  MATCOM、MATLAB、混合编程 1引言MATLAB是MathWorks公司于1982年推出的一种以矩阵为基本运算单位的高效数值计算软件,带有功能强大的数学函数库,并开发有多种学科领域的工具箱函数库,广泛地应用于科学研究与工程计算。然而,MATLAB自身存在的一些缺点限制了它在更多方面的应用:(1)MATLAB程序不能脱离其运行环境,可移植性差 (2)

2、MATLAB是一种解释性语言,语言执行效率低,实时性较差 (3)MATLAB的界面开发能力较差,难以开发出友好的应用界面 (4)MATLAB编写的M文件是文本文件,容易被直接读取,难以保护劳动者的成果VC+用于面向对象的可视化编蹋梢酝瓿纱拥撞闳砑钡矫嫦蛴没砑雀髦钟贸绦虻目盟峁母髦质涤霉撸呖梢郧崴煽龈咝看蟮腤indows应用程序。但在实际工程开发中,与MATLAB相比:(1) VC+在数值处理分析和算法工具等方面不如MATLAB (2) VC+在准确方便地绘制数据图形(数据可视化)方面不如MATLAB因此,把MATLAB在数值计算、算法设计以及数据可视化等领域的优势

3、与VC+应用系统集成,不仅可以完全满足系统在数据运算与表现方面的需求,而且还可提高系统处理的效率和稳定性,同时也减少了开发人员实现算法的困难,缩短了软件开发的周期,提高了软件质量,在实践中具有很高的使用价值。2 VC+与MATLAB混合编程方法在VC+下调用MATLAB,主要有以下三种方法:1) 利用MATLAB引擎MATLAB Engine库是MathWorks公司提供的一组函数库,它提供了一种在用户程序进程中与独立的MATLAB进程通讯的方法,在Windows下使用ActiveX技术实现。 MATLAB Engine不仅可以调用MATLAB中的CC+函数,还可以调用工具箱中的函数,应用程序

4、整体性能较好,同时,MATLAB Engine方式可利用MATLAB强大的图形功能;但该种方式的致命缺陷是不能脱离MATLAB运行环境。2) 利用MATLAB自带编译器MCC从MATLAB 5.1版本开始,MathWorks公司推出了一系列的MATLAB自带编译器来解决MATLAB与C+的接口问题。编译器MCC可以将MATLAB的C/C+数学库编译为VC+编译器能识别的代码嵌入VC+环境。利用MCC编译器,可以有效提高代码的执行效率,而且可以脱离MATLAB运行环境;但待编译的M文件不能涉及MATLAB的内部类,出现编译文件嵌套时应改写M文件,而且此种方式不支持图形功能。3) MATCOM转化

5、法MATCOM是MathWorks公司开发的为MATLAB中的M文件进行高效解释和调试的集成开发环境。MATCOM编译M文件,先将M文件按照与MATCOM的cpp库的对应关系,翻译为cpp源代码,然后用C编译器将cpp文件编译成相应的exe或dll文件。用MATCOM方式,生成的代码可读性好,支持图形函数,支持M文件编译过程中的文件嵌套情况,可脱离MATLAB环境;缺陷为待编译的M文件不能涉及MATLAB的内部类。综合考虑上述三种结合方式,MATCOM转化法最为简便有效,笔者认为是实现VC+与MATLAB混合编程的最佳途径。 3 MATCOM转化法 以下介绍均以MATLAB 6.5、MATCO

6、M 4.5、VC+ 6.0和Windows XP为例进行说明。MATLAB包括数学函数和工具箱函数,MATCOM已经将一般数学函数进行编译,可以遵循MATCOM语言规则直接在VC+中使用;要使用工具箱函数,则需要在MATCOM下编译MATLAB的M文件。如图1所示。 图1  MATCOM转换法示意图  3.1  只使用MATLAB一般数学函数3.2  使用MATLAB数学函数和工具箱函数当所需函数不在refguide.pdf中时,在完成上面步骤后,可利用MATCOM将所需函数的M文件转换为cpp文件或dll文件后加入VC+工程使用。MATCOM

7、使用简单,在此就不仔细陈述转换过程了。特别需要提出的是,在转换过程中若有M文件嵌套情况出现,所有M文件应在同一目录下。4应用实例下面以VC+下调用MATLAB随机函数、噪声函数、通信工具箱中数字调制和解调函数为例,说明MATCOM在工程开发中的应用。(1)使用MATCOM将MATLAB中随机函数randint、噪声函数awgn、数字调制函数dmod和解调函数ddemod的M文件转化为VC+的h文件和cpp文件。(2) 建立VC+工程,将所需文件加入工程。(3) 遵循MATCOM语言格式,使用随机函数产生随机二元序列,经数字调制后加噪声,再经数字解调函数解调出二元序列。图2为此VC+程序运行时的

8、界面(单色处理后):图2  VC+仿真程序运行界面5结束语使用MATCOM实现MATLAB和VC+的混合编程,是开发数据处理应用软件的有效途径。此种方法的优势主要如下:(1) 提供了MATLAB中的大量成熟函数。(2) 充分发挥出MATLAB强大的数据可视化功能。(3) 发挥出强大开发工具VC+的Windows平台优势。(4) 程序可脱离MATLAB运行环境。综上所述,MATCOM转换法最大限度地利用了上述各种软件的特长,将高难度的算法研究与实际应用结合在一起,达到了程序简洁、编程效率提高和算法更易实现的目的。在开发过程中,已有编程经验的研究人员,只要熟悉MATLAB的函数调用、语法格式,就可以通过调用函数快速地解决问题,不必花费大量的时间与精力研究具体的算法,而是更专注于专业方面的研究。 参 考

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论