MATLAB Coder从MATLAB生成C/C++代码步骤
MATLAB Coder可以从MATLAB代码生成独立的、可读性强、可移植的C/C++代码。
使用MATLAB Coder产生代码的3个步骤:
准备用于产生代码的MATLAB算法;
检查MATLAB代码的兼容性(有些matlab代码语句并不能生成c/c++代码);
产生最终使用的源代码或MEX。
利用MATLAB Coder生成c++代码,并在vs2013中验证:
一个简单的例子,两数相乘:
1、安装matlab2014a或者更新版本;
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对话框;
5、在New选项卡Name中输入一个工程名foo.prj;点击Ok,弹出MATLAB Coder MEX Function对话框;
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;选中Generate code only;
9、点击More settings,GeneralàLanguage选择C++;Interface选项中去掉所有选项;Close;
10、点击Build,进行编译;点击View report,弹出Code Generation Report对话框,此时,变量a、b、c会显示相应的变量信息;
11、利用vs2008建立一个控制台应用程序,将生成的相关文件foo.h、foo.cpp、rtwtypes.h、foo_types.h拷到相关目录下并添加到应用程序中;
12、在foo.cpp文件中添加#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);
cout<<"c = "<<c<<endl;
return 0;
}
参考:http://blog.csdn.net/fengbingchun/article/details/6793826
Matlab和C++混合编程 参考:http://www.cnblogs.com/lidabo/archive/2012/08/24/2654148.html
MATLAB Coder从MATLAB生成C/C++代码步骤的更多相关文章
- 转 举例说明使用MATLAB Coder从MATLAB生成C/C++代码步骤
MATLAB Coder可以从MATLAB代码生成独立的.可读性强.可移植的C/C++代码. http://www.mathworks.cn/products/matlab-coder/ 使用MATL ...
- EA生成实体类代码
引言 在做机房个人版重构的时候,就听说了EA是一个强大的软件.仅仅只是知道的时候,已经画完了图,没有怎么用EA其它的功能,所以一直没有见识过罢了.如今到了机房合作了,想到EA一定要好好用,这样能省不少 ...
- Matlab与C/C++联合编程之Matlab以MEX方式调用C/C++代码(四)
利用Matlab与VC++联合编程,既可在C语言程序中打开Matlab引擎,调用Matlab的ToolBox函数和作图函数,也可在Matlab中调用C代码生成的动态链接库文件,用以加快执行速度.缩短开 ...
- Matlab与C/C++联合编程之Matlab以MEX方式调用C/C++代码(一)
MEX文件是一种可在matlab环境中调用的C语言(或fortran)衍生程序,mex的编译结果实际上就是一个带输出函数mexFunction 的dll文件. 中文名 mex文件 外文名 MATLAB ...
- Matlab与C/C++联合编程之Matlab以MEX方式调用C/C++代码(二)
如果我有一个用C语言写的函数,实现了一个功能,如一个简单的函数: double add(double x, double y) { return x + y; } 现在我想要在Matlab中使用它,比 ...
- matlab coder 工具箱使用教程
之前一直听说matlab代码可以转C和C++代码,但是一直都没有时间尝试,最近闲着无聊,就想来试试如何转换,上网查了很多资料,照着做下去,发现都有一些问题,之后自己琢磨了很久,终于将一个很简单的例子给 ...
- 《数字图像处理原理与实践(MATLAB版)》一书之代码Part6
本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part6,辑录该书第281至第374页之代码,供有须要读者下载研究使用.代码运行结果请參见原书配图,建议下载代码前阅读下 ...
- 《数字图像处理原理与实践(MATLAB版)》一书之代码Part2
本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part2(P43~80),代码运行结果请參见原书配图,建议下载代码前阅读下文: 关于<数字图像处理原理与实践(MA ...
- 《数字图像处理原理与实践(MATLAB版)》一书之代码Part1
本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part1(P1~42).代码运行结果请參见原书配图. P20 I = imread('lena.jpg');BW1 = ...
随机推荐
- Android 获取最近应用的缩略图
最近有项需求是获取应用的缩略,用于在动画时显示.因此就对此块知识简要了解了一下. 在android中获取视频文件的缩略图有三种方法: 1.从媒体库中查询 新视频增加后需要SDCard重新扫描才能给新增 ...
- Android开发效率—Eclipse快捷键
很多过去使用Visual Studio开发软件的网友可能不熟悉Java开发环境,今天Android开发网告诉大家一些提高Android开发效率的Eclipse快捷键,可以有效率的帮助我们管理代码和减少 ...
- Hibernate 异常 —— Unable to instantiate default tuplize
出现这个异常 —— Unable to instantiate default tuplizer ,是 Hibernate 的映射文件(*.hbm.xml)导致的.仔细检查一下工程里的映射文件吧. 笔 ...
- django中的filter和get的区别 (MultipleObjectsReturned: get() returned more than one Publisher --)(DoesNotExist: Publisher matching query does not exist.)
上面的例子中`` filter()`` 函数返回一个记录集,这个记录集是一个列表. 相对列表来说,有些时候我们更需要获取单个的对象, `` get()`` 方法就是在此时使用的: >>&g ...
- 17.allegro导入导出[原创]
一.从一张现成的PCB中导出元件封装到库中 --- -- 二. ①规则 ②元件摆放位置信息导出 这个时候我们在新建的电路板上: ① 导入记事文档 -- -- 到如后: 系统本来默认的是双层,这个时候变 ...
- [CCF2015.12]题解
201512-1 数位之和 水题一个,取模除以10胡搞即可(不知道字符串为什么不行 #include <algorithm> #include <iostream> #incl ...
- 《OD学hadoop》Linux基础
一.Linux基本环境 1. Linux常见版本及VMware虚拟机安装Linux系统 2. 虚拟机网络配置(IP地址.主机名.防火墙) 3. 文件基本命令操作 4. 四大远程连接工具使用 二.Lin ...
- 实际利率 > 名义利率
名义利率与实际利率的关系为:实际利率=(1+名义利率/计息周期)计息周期-1. 如计息周期数=1时,两者相等.如计息周期数大于1时,实际利率大于名义利率,当计息周期数小于1时,实际利率小于名义利率. ...
- 彻底搞清javascript中this, constructor, prototype
说起这三个属性,肯定有一些同学和我一样,初学js时非常困惑,头大,一脸的迷茫.今天就来给大家彻底解决这些担心受怕的问题. 先看this this定义: this就是函数赖以执行的对象. 分析这句话: ...
- asp.net,CSS设置<TableListView>的title居左,居左,居上
居左 DIV.TableTitleStyle TABLE.grid TH { text-align:left; } 引用 <div class="TableTitleStyle&quo ...