MATLAB在数值运算、图像处理、实时仿真方面具有很大得优势,但它得运行速度远远不及C语言或C++,为了解决这一问题,MATLAB提供了和C/C++混合编程的接口,以此讲MATLAB对运算、图形处理得优点和c语言运行速度快得特点想结合。
混合编程的一般步骤:MATLAB 函数使用MATLAB格式数据 —>C/C++程序首先解析MATLAB数据 —>解析后运行C/C++程序,得到结果 —>C/C++程序最后要把上述结果数据打包成MATLAB格式输出给MATLAB中的主调程序。MATLAB是不能直接调用c语言的函数的,需要将c语言代码编译乘mex文件才可以调用,其中会用到一些辅助函数,本文以一个加法的例子介绍一下MATLAB与C混合编程的方法。
第一步 创建一个C文件
文件命名为add.c。
第二步 添加头文件“mex.h”
这一项是必须的,mex.h中包含了编译中用到的接口变量,函数等。
第三步 定义c语言的功能函数
void add(double *x,double *y,double *z)
{
*z=*x+*y;
}
这里我们全部用指针的方式传递输入输出参数ÿ