我是靠谱客的博主 年轻手套,最近开发中收集的这篇文章主要介绍使用 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

最后

以上就是年轻手套为你收集整理的使用 MATLAB Coder 将 MATLAB 代码生成 C/C++ 代码的全部内容,希望文章能够帮你解决使用 MATLAB Coder 将 MATLAB 代码生成 C/C++ 代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部