在前面的介绍中,只是简介绍了VC与Matlab程序设计的几个简单例子,很多关键性的知识都没有介绍(例如函数的输入输出格式,VC中调用工具箱函数,编译器的使用,几种方法的混合使用等等)在以后的文章中,将会对这些知识进行介绍(因此标题也改了一下,呵呵,如果有错误的地方,还望大家多多指点)VC调用Matlab的方法有多种,为了对混合编程有一个大概认识,将常用的几种方法中介绍一下: 一、通过Matlab Engine方式 Matlab Engine是指一组Matlab提供的接口函数,支持C语言, Matlab Engine采用C/S(客户机/服务器)模式,Matlab作为后台服务器,而C程序作为前台客户机,通过Windows的动态控件与服务器通信,向Matlab Engine传递命令和数据信息,从Matlab Engine接受数据信息。用户可以在前台应用程序中调用这些接口函数,实现对Matlab Engine的控制。采用这种方法几乎能利用Matlab全部功能,但是需要在机器上安装Matlab软件,而且执行效率低,因此在实际应用中不采用这种方法,在软件开发中也不可行,我认为适合个人使用或做演示用,因此不打算介绍。 二、直接调用Matlab的C/C++数学函数库 Matlab中提供了可以供C/C++语言调用的C/C++数学函数库,其中包含了大量用C\C++语言重新编写的Matlab数学函数,这些函数涉及到线形代数、数值分析、傅立叶变换、多项式计算、解微分方程等,并且函数库中提供了大量各种矩阵操作函数,在VC中可以直接使用这些函数,通过这些函数可以在VC中方便的实现在Matlab中矩阵运算功能。可以看出用这种方法可以很灵活的调用Matlab来编写应用程序,但要求读者对C\C++语言比较熟悉,可以看出使用这种方法调用Matlab的工具箱函数有很大困难。适合对C\C++语言比较熟悉的用户使用, 三、用Matlab自带的Matlab Compiler Matlab Compiler的作用是将m文件转化成C/C++代码(也就是通常所用的mcc命令),这种源代码需要用C/C++编译器编译连接成独立应用程序,在将m文件转成独立应用程序的过程中生成的C/C++文件,原则上是可以被其它的C/C++代码调用的,编译器可以通过设置mcc命令的选项,将m文件编译成动态链接库文件、C/C++文件、可执行文件等一系列文件。到matlab R21.1为止,Matlab Compiler的m程序转换成C/C++代码功能有很多限制:
四、使用matlab的combuilde工具
但matcom也有以下不足:
因此在不涉及到三维做图以及m文件不大的情况下推荐使用。 (责任编辑:泉水) |