使用 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

使用 MATLAB Coder 将 MATLAB 代码生成 C/C++ 代码_第1张图片

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

使用 MATLAB Coder 将 MATLAB 代码生成 C/C++ 代码_第2张图片

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

使用 MATLAB Coder 将 MATLAB 代码生成 C/C++ 代码_第3张图片

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

使用 MATLAB Coder 将 MATLAB 代码生成 C/C++ 代码_第4张图片

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

使用 MATLAB Coder 将 MATLAB 代码生成 C/C++ 代码_第5张图片

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

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

使用 MATLAB Coder 将 MATLAB 代码生成 C/C++ 代码_第6张图片

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

使用 MATLAB Coder 将 MATLAB 代码生成 C/C++ 代码_第7张图片

13、添加 test.cpp 文件

使用 MATLAB Coder 将 MATLAB 代码生成 C/C++ 代码_第8张图片

#include "stdafx.h"
#include "foo.h"
#include 

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 <


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

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

你可能感兴趣的:(matlab,C/C++)