基于MATLAB 进行混合编程的接口技术实现

来源:互联网 发布:蜂群文化 知乎 编辑:程序博客网 时间:2024/05/22 00:32

MATLAB 是MathWork 公司推出的一种面向工程和科学运算的交互式计算软件. 由于MATLAB 在数据方面,尤其在处理矩阵运算及常规数学变换方面有着明显的优势,往往成为工程人员的首选. 而MATLAB 功能强劲的工具箱则是其另一重大特色,这些工具箱可以最大限度地满足科学研究和工程计算的数据分析处理需要. 此外,MATLAB 语言简洁紧凑,使用方便灵活,编程效率极高,数据可视化功能十分强大. 正因为如此,MATLAB 可以让使用者从繁复艰辛的计算中解放出来,把注意力更多的投向对问题的思考和把握上. 但MATLAB 本身也具有一些不足之处:其一,图形界面设计功能相对于VC、VB 等来说较弱;其二,让许多软件开发者头疼的是,在MAT2
LAB 上开发的程序不能脱离MATLAB 的运行环境. 因此,找到MATLAB 与其它软件的接口,充分利用它们各自的优点实现混合编程就显得尤为必要.
 

总的来说,MATLAB 的接口方式主要有以下三种:
(1) 采用客户/ 服务器(Client/ Server) 的计算模式,通过windows 的ActiveX 通道和MATLAB 进行结合. 具体而言,以VC、VB 等程序设计语言设计程序框架,以编译的程序作为前端客户机,通过MATLAB 的ActiveX自动化服务或MATLAB 引擎在后台与MATLAB 服务器建立连接,实现动态通信. 当然从这里我们就可以看出,这种方法需要MATLAB 在后台适时运行,离不开MATLAB 运行环境.
(2) 使用MATLAB 编译器. 此种方法正是为了解决第一种方法的局限性而出现的,在MATLAB5. 0 以上的版本中都带有MATLAB 编译器(MATLAB Complier) ,它能将m 文件转换为C或C + + 原代码,这些原代码与MATLAB 的其它一些应用模块(例如MATLAB 数学库) 结合,经C/ C + + 编译器的编译连接就可生成MEX文件及独立的应用程序或算法封装于其中的动态连接库(DLL) .
(3) mathtools 公司利用Matcom 技术编写的Mideva 工具软件,它可用C + + 编译器将m 文件转换为DLL 供VB、Delphi等调用.