Matlab Coder 使用方法

举例介绍matlab coder的使用方法

工具/原料

  • matlab

方法/步骤

  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 b

    c =a * b

    其中,%#codegen可以防止出现警告错误。

  4.  在命令窗口,输入mex -setup,选中一个存在的编译器,界面如下;

    Matlab Coder 使用方法
  5. 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++;

    Matlab Coder 使用方法
  6.  点击Build,进行编译;点击View report,弹出Code Generation Report对话框,MATLAB code下显示的是调用的MATLAB 函数,C code下可以看到生成的相关 .h .cpp 文件,此时,变量a、b、c会显示相应的变量信息,同时MATLAB会在目录下生成codegen文件夹,在这里面可以找到生成的 .h  .cpp文件;

    Matlab Coder 使用方法
  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;

    }

    END
 经验内容仅供参考,如
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值