本书主要介绍如何运用Matlab与C/C进行混合程序设计。本书全面详细介绍了MatlabC数学库、MatlabC数学库、Matcom、MatlabCOMBuilder、MatlabEngine及编译Matlab独立可执行程序等Matlab混合程序设计的内容。本书共分为7章,主要内容包括:Matlab编程的基础知识、MatlabC语言接口、如何生成可独立运行的Matlab程序、在VisualC中调用Matlab程序、Matcom、MatlabCOMBuilder与VisualC混编程以及在VisualC中调用MatlabC数学库。本书各章都包含大量的实例程序,可供寻求将Matlab程序脱离Matlab环境的Matlab程序设计人员、寻求高效算法库的C/C开发人员学习和参考。本书采用的开发和运行环境为:VisualC6.0与Matlab6.5。[前言]最早接触Matlab是在大学期间参加“大学生数学建模竞赛”的时候,那时候惟一的感觉就是“相见恨晚”。接着在读研究生做课题的时候,开始使用Matcom编译Matlab程序以期获得更快的处理速度,使用Matcom的C矩阵库以期在享受高效率矩阵运算库的同时,实现和VisualC6.0开发环境的无缝连接。后来,MathWorks公司将Matcom收购并将其功能整合到Matlab中。直到Matlab6.5的推出,Matlab与C/C混合编程增加了MatlabC语言接口、MatlabC数学库、MatlabCOMBuilder和Matcom等诸多内容,由此Matlab与C/C进行混合程序设计的方法也派生出诸多“门派”。MatlabC语言接口即Matlab提供的一组C语言API函数以供用户调用。这组C语言API函数是Matlab和用户C代码之间的桥梁。用户可以在Matlab的MEX文件中调用C语言API函数,也可以在纯C/C开发环境中调用C语言API函数。MatlabC数学库是Matlab提供的一组封装好的矩阵运算数学库,其使用方法和Matlab环境中的编写方法非常相似,如果用户用VC(为了书写方便,书中出现的VC是VisualC的简写)实现用户界面,而又希望寻找一组高效的矩阵运算数学库的话,MatlabC数学库是一个不错的选择。MatlabCOMBuilder可以将Matlab的用*.m文件表达的函数编译为COM组件。这也是MathWorks公司推荐的一种进行Matlab混合编程的方法。很多用Matlab编译器编译有错误的文件用MatlabCOMBuilder却能很好地解决。只是具体操作起来,在VC中调用COM组件比调用C数学库和C语言API函数略微复杂。Matcom是第一个可以将Matlab的*.m文件编译为C/C代码的工具。现在,MathWorks公司已经将其集成到Matlab中,没有必要再使用Matcom来编译*.m文件了。但是Matcom的C矩阵库仍然有使用的价值,相对于MatlabC数学库来说,其使用起来更为简单和方便。可以看出,上述各种Matlab与C/C混合程序设计的方法各有千秋,具体使用时还要结合开发者的具体情况。但无论使用哪种方法,Matlab的数据结构与C/C的数据结构之间的相互访问和转换都是关键,这也是本书的重点所在,希望读者在读本书的过程中注意。本书的所有源代码都可以在附带的光盘中找到。另外,为了与书中程序对应及保证全文体例上的统一,本书中的符号全部采用正体书写。由于作者的水平有限,如果读者对本书的内容有疑问或者发现书中有错误的地方,请发送邮件到matlab_vc_program@yahoo.com.cn与作者讨论或批评指正,谢谢!在本书的编写过程中得到了很多同志的支持与帮助。特别感谢李璐、李群、路瑞强、伍炜、周志勇、王国房六位同志,由于本书涉及VisualC6.0与Matlab程序设计的诸多方面,很多关键问题都是在与六位同志的讨论中解决的。不仅如此,他们还为本书提供了很多的宝贵资料。感谢齐春溪女士不辞辛劳地完成了本书所有章节的初步排版工作,并且找出了本书初稿中的诸多错误。最后感谢所有对本书的完成提供过帮助的人们,没有他们的帮助和付出,本书也不可能完成。