使用 MATLAB Coder 将 MATLAB 代码生成 C/C++ 代码

MATLAB Coder 可以将 MATLAB 代码生成独立的、可读性强、可移植的 C/C++ 代码。

使用 MATLAB Coder 产生代码的3个步骤:

  1. 准备用于产生代码的 MATLAB 算法;
  2. 检查 MATLAB 代码的兼容性(有些 matlab 代码语句并不能生成 c/c++ 代码);
  3. 产生最终使用的源代码或 MEX。

例子:两数相乘

1、安装 matlab2011a 或者更新版本

2、简单生成一个 foo.m 文件

function c = foo(a, b) %#codegen
%This function muliplies a and b
c = a * b

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

3、在命令窗口输入 mex -setpu ,选中一个存在的编译器

4、在命令窗口输入 coder(图形界面),弹出 MATLAB Coder Project 对话框,输入一个工程名 foo.prj


6、在 Overview 选项卡中,点击 Add files,弹出对话框,选中 foo.m 打开


7、单击变量 a,选择 Define by Example,弹出 MATLAB Coder Define by Example 对话框,在 MATLAB Expression 中输入 5,点击 OK;同样变量 b 也进行相应操作,输入 6


8、选中 Build 选项卡,Output type 中选择 c/c++ Static Library


9、点击 More settings,General Language 选择 C++


10、点击 Build,进行编译;点击 View report,弹出 Code Generation Report 对话框,此时,变量 a、b、c 会显示相应的变量信息

11、利用 vs2012 建立一个控制台应用程序,将生成的相关文件 foo.h、foo.c、rtwtypes.h、foo_types.h (请注意多个 m 文件的情况) 拷到相关目录


12、在 foo.c 文件中添加 #include "stdafx.h"


13、添加 test.cpp 文件


#include "stdafx.h"
#include "foo.h"
#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    double a = 0.0, b = 0.0, c = 0.0;
   
    cin>> a >> b;
    c = foo(a, b);    //调用 foo 函数
    cout<< "c = " << c <<endl;
    return 0;
}


注意:如果有多个 MATLAB 的 m 文件同时生成,除了需要将每个 m 文件所生成的 .c 和 .h 文件复制到 VS 工程的目录之外,还要在每个 .c 文件添加 #include "stdafx.h"

转载自:http://blog.csdn.net/fengbingchun/article/details/6793826

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值