之前一直听说matlab代码可以转C和C++代码,但是一直都没有时间尝试,最近闲着无聊,就想来试试如何转换,上网查了很多资料,照着做下去,发现都有一些问题,之后自己琢磨了很久,终于将一个很简单的例子给做通了,现在将我在配置过程中遇到的问题以及我的解决方法写出来和大家分享。

  首先是mex -setup命令的配置。很多人在输入mex -setup的时候都显示缺少编译的SDK,这个时候需要我们自己下载安装一个gcc编译器,推荐使用TDM-GCC MINGW,下载地址为https://sourceforge.net/projects/tdm-gcc/?source=typ_redirect。一切采用默认安装,安装完成后需要配置环境变量。变量名为MW_MINGW64_LOC,变量值为C:\TDM-GCC-64(这个是默认安装位置)。重启matlab,再次输入mex -setup,会出现以下的提示:

图  1

大家请注意,上图表示编译器安装成功,很多人到了这一步就不知道如何走下去了,经过我的测试,有以下两种方式可以进入代码转换界面。第一种是在命令行输入coder,自动跳转到matlab coder界面,第二种是在主菜单中选择APP界面,然后点击matlab coder工具箱。

在这之前,有必要创建我们的转换函数文件以及调用该函数的测试脚本文件

mex_test.m

%待转换函数

function c=mex_test(a,b)
c=a+b;
end

%end

test1.m

%测试脚本文件

a=1;
b=2;
c=mex_test(a,b);

%end

进入工具箱的界面如图2所示,在这里,你需要选择待转换的文件,matlab对转换的文件做了限制,脚本文件时无法转换的,只有函数文件可以转换,也就是你可以将一个funcrion函数封装在M文件中,然后将这个M文件中的函数转换成C以及C++代码。

图 2

在图2选择待转换的M文件(我的是mex_test.m)后,出现以下界面:

图 3

点击图3右下角的next进入下一步,如下图所示。

图 4

在图4中,提示我们需要对输入的参数进行类型定义,有两种方法,一种是自动的,该方法只需要我们写一个调用该函数的脚本程序(test1是我的脚本程序),编辑器会自动识别各个输入参数的类型,如图5所示;另外一种是点击图4蓝标区域,手动指定参数类型。

图 5

点击next,进入下一步,如果采用的是第一种方法来定义参数类型,那么这一步会直接出现图6的图框内容,如果采用的是第二种方法,需要选择我们的测试脚本文件。然后点击check按钮,不出意外应该会通过,如图7所示。

图 6

图 7

点击进入下一步,出现图8所示的图框,选择相应的语言,即可。

好了,基本上大功告成。

matlab coder 工具箱使用教程的更多相关文章

  1. MATLAB地图工具箱学习总结(一)从地图投影说起

    MATLAB地图工具箱学习总结(一)从地图投影说起 前言 本学期地图投影课上,李连营老师建议我们使用MATLAB完成每周的作业.从大二上学期开始接触MATLAB学习数学运算和地理数据处理的我,自然不会 ...

  2. MATLAB 地图工具箱 m_map 的安装和入门技巧(转)

    reference: http://blog.sina.com.cn/s/blog_8fc890a20102v6pm.html   需要用一些地图工具,arcgis懒得装了,GMT(generic m ...

  3. MATLAB地图工具箱学习总结(四)自定义投影

    MATLAB地图工具箱学习总结(四)自定义投影 这是本系列的最后一篇文章,准备给大家讲讲自定义投影怎么做.在做这项作业的时候,自己也是花了不少时间,将所有地图投影源文件都看了一遍,简单分析了一下源代码 ...

  4. MATLAB地图工具箱学习总结(三)地图工具箱的基本知识

    MATLAB地图工具箱学习总结(三)地图工具箱的基本知识 今天想要介绍的是一些比较基础的函数.了解了这些函数,地图投影的基本概念才能真正明白.而要想继续研究MATLAB中有关地图投影的函数,尤其是未来 ...

  5. MATLAB地图工具箱学习总结(二)大圆和恒向线

    MATLAB地图工具箱学习总结(二)大圆和恒向线 今天要和大家谈一谈大圆.恒向线航道的画法.还是先从案例开始说起,再分别介绍相关的函数. 1                    作业案例:地图投影作 ...

  6. MATLAB Coder从MATLAB生成C/C++代码步骤

    MATLAB Coder可以从MATLAB代码生成独立的.可读性强.可移植的C/C++代码. 使用MATLAB Coder产生代码的3个步骤: 准备用于产生代码的MATLAB算法: 检查MATLAB代 ...

  7. MATLAB统计工具箱 转

    D:\Program Files\MATLAB\R2012b\toolbox\stats\stats MATLAB统计工具箱包括概率分布.方差分析.假设检验.分布检验.非参数检验.回归分析.判别分析. ...

  8. 转 举例说明使用MATLAB Coder从MATLAB生成C/C++代码步骤

    MATLAB Coder可以从MATLAB代码生成独立的.可读性强.可移植的C/C++代码. http://www.mathworks.cn/products/matlab-coder/ 使用MATL ...

  9. matlab遗传算法工具箱

    转自http://blog.sina.com.cn/s/blog_5ebcc0240101pnrj.html matlab遗传算法工具箱函数及实例讲解 (2014-01-10 13:03:57)   ...

随机推荐

  1. linux服务器添加一块新硬盘不用重新启动机器的操作

    Linux系统添加一块新硬盘不用关闭系统即可加载硬盘信息的操作 因之前换过硬盘重装系统,硬盘上的数据没有拷贝出来,开发人员问我要备份,炸了.我只好联系机房让他把之前换掉的硬盘插回服务器.但是插好之后f ...

  2. javaScript设计模式 -- 灵活的javaScript语言

    因为好长时间的懒惰和懈怠,好久没有更新文章了,从现在开始我会按时更新一些自己总结的一些知识,和研究的东西,希望能让大家从我这里学到一点点的知识. 本文参考了张荣铭的javascript设计模式一书,算 ...

  3. 常用排序算法的Java实现与分析

    由于需要分析算法的最好时间复杂度和最坏时间复杂度,因此这篇文章中写的排序都是从小到大的升序排序. 带排序的数组为arr,arr的长度为N.时间复杂度使用TC表示,额外空间复杂度使用SC表示. 好多代码 ...

  4. Java 自定义实现链表

    自定义实现链表很简单,只需要明白链表是什么样子的数据结构. 下图表示一种单向列表.其中指针first指向队头,last指向队尾,curr指向当前读的数据. 下面是我的实现代码,很简单,明白上述结构后, ...

  5. JDK1.8源码(六)——java.util.LinkedList 类

    上一篇博客我们介绍了List集合的一种典型实现 ArrayList,我们知道 ArrayList 是由数组构成的,本篇博客我们介绍 List 集合的另一种典型实现 LinkedList,这是一个有链表 ...

  6. Beta阶段敏捷冲刺报告-DAY3

    Beta阶段敏捷冲刺报告-DAY3 Scrum Meeting 敏捷开发日期 2017.11.4 会议时间 12:30 会议地点 软工所 参会人员 全体成员 会议内容 当天任务确认,进度调整, 讨论时 ...

  7. 第九条:覆盖equals方法时总要覆盖hashCode方法

    Object类的hashCode方法: public native int hashCode();   是一个本地方法. 其中这个方法的主要注释如下: Whenever it is invoked o ...

  8. 22.C++- 继承与组合,protected访问级别

    在C++里,通过继承和组合实现了代码复用,使得开发效率提高,并且能够通过代码看到事物的关系 组合比继承简单,所以在写代码时先考虑能否组合,再来考虑继承. 组合的特点 将其它类的对象作为当前类的成员使用 ...

  9. linux 下 nc 命令的使用

    netcat被誉为网络安全界的'瑞士军刀',一个简单而有用的工具,透过使用TCP或UDP协议的网络连接去读写数据.它被设计成一个稳定的后门工具,能够直接由其它程序和脚本轻松驱动.同时,它也是一个功能强 ...

  10. Something about SeekingJob---Resume简历

    这几天脑子里满满的装的都是offer.offer.offer快到碗里来,但是offer始终不是巧克力,并没那么甜美可口易消化. 找工作刚开始,就遇到了不小的阻力,看到Boss直聘上各种与IT相关的工作 ...