C语言实现MATLAB 6.5中M文件的方法2010-01-28 计算机信息技术 宋威众所周知,MATLAB是一个功能强大的数学软件,擅长于用矩阵运算完成各种数学功能。但是其程序需要在MATLAB环境下解释执行,效率不高。如果能将它强大的函数库用于C语言,利用C来编译执行,MATLAB将能发挥更大的作用。所以,MATLAB从5.0开始已经提供了与外部C/C++程序的应用程序接口,为利用C语言调用MATLAB的函数提供了可能。但是MATLAB的接口发展很快,到MATLAB 6.5已经提供了对VC 7.0的支持,同时对C的接口相对于5.X版本有了一定的改变。在MATLAB当中,我们利用M文件来实现函数,每一个M文件实现一个单独的功能,这一点和C语言当中的函数是相互对应的。所以,如果我们能将MATLAB中的M文件转化为C语言下的一个单个函数,就能实现MATLAB中相应的功能。实现方法整个过程可分为三个主要部分,用MATLAB将M文件翻译为C语言文件,从生成的C语言文件提取出有用语句,编写数据转换程序实现参数格式转换。整个过程最终将把M文件翻译成C语言当中的一个具有相同功能的函数,供其它的程序调用。本文用一个最简单的M文件来示例:文件名:messay.m
function c=messay()
a=3.4;
b=5.6;
c=sqrt(a)+sqrt(b);
该m文件实现了计算

1、将M文件编译为C语言文件为了将M文件翻译为C语言文件,需要进行一定的设置,这里假设编写C语言的环境为VC6.0,在MATLAB命令提示符下输入mex -setup和mbuild -setup命令,在相应选项中选择Microsoft Visual C/C++即可。在MATLAB命令行中使用mcc命令将messay.m翻译为C代码。
mcc -m messay.m
其中的参数-m代表mcc命令将把m文件翻译成C语言的代码。翻译命令将在messay.m所在的文件夹下生成三个C语言文件:messay.h,messay.c和messay_main.c。其中messay_main.c提供了main()函数;messay.h提供了整个程序的函数声明;messay.c包含了MATLAB生成的功能函数。这三个文件当中,messay.c中包含了我们所需要的数学函数。