Matlab Coder 使用方法
1、MATLAB Coder 工具是 MathWorks 公司在 2011年推出的 Matlab2011a版本中推陈出新的产品,它可以将MATLAB 函数直接生成 C 代码。主要作用体现在一下几点。1、集成: MATLAB算法变成源代码或者静态库,用于已有的C环境。2、原型:MATLAB算法作为独立可执行文件。在没有MATLAB的环境下进行使用。3、加速:是代码更高的效率执行,生成 MEX文件,使代码加速不同倍速。4、实现:转成C/C++ ,代码用于嵌入式处理器。本文主要介绍如何用MATLAB Coder将MATLAB代码转化为C/C++代码,并进行加速。
2、 从MATLAB到C/C++步骤1、 安装matlab2011a或者更新版本,下面例子以2013版本为基础介绍;
3、简单生成一个foo.m文件;functionc = foo(a, b)%#codegen%Thisfunction muliplies a and bc =a * b其中,%#codegen可以防止出现警告错误。
4、在命令窗口,输入mex -setup,选中一个存在的编译器,界面如下;
5、在命令窗口输入coder(图形界面),回车,弹出MATLABCoder Project对话框;6、在New选项卡Name中输入一个工弛贾班隧程名foo.prj;点击Ok,弹出MATLAB Coder MEX Function对话框;7、单击变量a,选择Define by Example…,弹出MATLAB Coder Define by Example对话框,在MATLAB Expression中输入5,点击OK;同样变量b也进行相应操作,输入6;8、 选中Build选项卡,Output type选项中我们可以选择输出类型,他可以生成MEX文件,动态链接库,静态链接库,可执行文件,为了看生成的C/C++ 代码,选择c/c++ Static Library;选中Generate code only;9、 点击More settings,选择ALL Setting,找到Advanced,Language选择C++;
6、点击Build,进行编译;点击View report,弹出Code Generation Report对话框,MATLAB code下显示的是调用的MATLAB 函数,C code下可以看到生成的相关 .h .cpp 文件,此时,变量a、b、c会显示相应的变量信息,同时MATLAB会在目录下生成codegen文件夹,在这里面可以找到生成的 .h .cpp文件;
7、利用vs2008建立一个项目程序,将生成的相关文件foo.h、foo.cpp、rtwtypes.h、foo_types.h拷到相关目录下并添加到应用程序中;编写main函数进行测试#include"foo.h"#include<iostream>#include<conio>usingnamespace std;int main(void){doublea = 0.0, b = 0.0, c = 0.0;cin>>a>>b;c =foo(a, b);cout<<"c= "<<c<<endl;getch();return0;}