C++包扩展_利用 MATLAB Coder 将M代码生成C/C++代码

46c1911b25db341ece0b754a525520de.png
利用MATLAB Coder将MATLAB代码生成C/C++代码​mp.weixin.qq.com
9ba48d5021d2713849e46db2adf0f460.png
MATLAB Coder 可以将MATLAB代码生成工程中常用的嵌入式或其他硬件平台的C或者C++代码。使用者可以在MATLAB中进行验证,然后将生成后的代码集合到工程中。集合的方式可以是源码,静态库和动态库。

63a5bf205ec02b87c166010a2b2a3808.png
在最近发布的 R2018b (4.1版)中,Coder 中新增了一些功能,包括了对深度学习,统计与机器学习,5G和模糊逻辑,跟踪和传感融合等工具箱进行了update,另外一部分是对 Coder 本身的功能进行了扩展,增加了树莓派硬件的支持包,对标准数学库,类支持和编译器支持等进行了扩展。

-

本文将对如何利用 MATLAB 的 Coder 将 MATLAB 代码转为 C (C++同理)进行介绍。

首先,在MATLAB中创建一个函数,这里构造了一个简单的函数RadarSay,假设存在4个通道的数据,通过该函数,可以得到目标的距离,速度和角度,以及SNR信息。

44db19181449725fd5c3684570da39b2.gif

然后在写一个测试脚本,验证函数是否实现功能。

49a8a5d964cc9f89e68a1bb533f74f15.png

可以看到,通过运行测试脚本,利用测试数据可以得到目标的距离,速度和角度以及SNR信息。

2104a9d2604a288fb3390e20374286ea.gif

下一步,在APP界面中打开Coder,进行MATLAB转C的处理。

1a2b212b29764b791279ea48485b91bf.gif

打开将要进行转C的MATLAB函数

6d21aafffdab9b8fd23e32e49f8749cd.gif

定义函数输入参数的数据类型,这里可以手动输入也可以利用测试脚本自动识别。

1e3d4648bcd9c28a24b5eeb623135042.gif

然后对转C的MATLAB函数进行错误和语法检查。

afc89189560e2fb1a3758fc4c0b09b07.gif

最后一步生成C/C++代码,直接点击生成即可。

35235d92441a2b5b05c84a64635b91e2.gif

生成成功会有完成提示。

77c2b4513372fa6bea87a177c78ee03e.gif

下面将用VS2013对生成的C语言进行验证,如图创建一个空的工程。

6b47ee15677135f4decb2ce62293a472.png

将上面生成的.c文件和.h文件分别添加到头文件和源文件目录下。

6168035a7595fe39edcc7a271e7533f6.gif

对Coder的C代码结果与MATLAB结果进行对比,结果一致。

b96c1e483f8ffd791bc84663f343df95.gif

> 软件环境

  • MATLAB R2018a 64bit
  • VS2013

后台回复 MATLAB 可获取R2018a版本MATLAB的下载链接。

8908fc7720f522135310838dbf1ea963.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 进程通信机制,linux的进程通信机制小结

linux向应用软件提供下列进程间通信手段:####第一类通信方式:只能用于父进程与子进程之间,或者两个兄递进程之间。>管道Pipe>信号Signal>跟踪Trace管道:由父进程来建立。管道两端的进程各自都将该管道视作一个文件。一个…

看穿面试这件事儿……

报 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。本文地址: http://blog.csdn.net/jobchanceleo/archive/2007/04/17/1568254.aspx 有个朋友Min十几年工作经验&…

阿里云胡晓明:数据智能将为城市生活带来真正价值

8月30日,在2017全球(上海)人工智能创新峰会-世界人工智能城市规划大会上,阿里巴巴集团资深副总裁、阿里云总裁胡晓明作《通往智能之路》主题演讲,指出数据智能将从交通、医疗、城市治理等方面影响城市生活,…

MySQL 之 information_schema

一、information_schema简介 在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。在INFORMA…

【iCore1S 双核心板_FPGA】例程十二:基于单口RAM的ARM+FPGA数据存取实验

实验现象: 核心代码: module single_port_ram(input CLK_12M,input WR,input RD,input CS0,inout [15:0]DB,input [24:16]A,output FPGA_LEDR,output FPGA_LEDG,output FPGA_LEDB); //----------------------------pll-------------------------------//…

curl post https_Linux命令cURL详解,并实现文件定时上传到ftp服务器的程序

前言前段时间群里讨论,想实现某个文件定时上传到服务器要怎么来实现。我记得之前做过 一个项目:为高通的iot模组编写FOTA功能:实现模组可以远程下载升级镜像包,实现版本升级功能。并当时使用的一个超级强大的工具cURL。心血来潮&a…

linux系统页面缓存,Linux缓存机制之页缓存

内核采用一种通用的地址空间方案,来建立缓存数据与其来源之间的关联。1) 内存中的页分配到每个地址空间。这些页的内容可以由用户进程或内核本身使用各式各样的方法操作。这些数据表示了缓存中的内容;2) 后备存储器struct backing_dev_info指定了填充地…

十月百度,阿里巴巴,迅雷搜狗最新面试七十题(更新至10.17)

十月百度,阿里巴巴,迅雷搜狗最新面试十一题 引言 当即早已进入10月份,十一过后,招聘,笔试,面试,求职渐趋火热。而在这一系列过程背后浮出的各大IT公司的笔试/面试题则蕴含着诸多思想与设计&…

python threading 结束线程

python threading 启动的线程,并没有提供终止线程的方法,现总结一下在网上找到的方法 1、通过threading.Thread._Thread__stop()结束线程 import time import threading def f():while 1:time.sleep(0.1)print(1)t threading.Thread(targetf) t.start…

快读模板

快速读入字符 inline char readc(){ static char buf[1 << 18], *fs, *ft;return (fs ft && (ft (fs buf) fread(buf, 1, 1 << 18, stdin)), fs ft) ? EOF : *fs; } 快速读入数字 inline int readint(){register char creadc();register int res0;re…

fasttext 文本分类_4种常见的NLP实践思路【特征提取+分类模型】

越来越多的人选择参加算法赛事&#xff0c;为了提升项目实践能力&#xff0c;同时也希望能拿到好的成绩增加履历的丰富度。期望如此美好&#xff0c;现实却是&#xff1a;看完赛题&#xff0c;一点思路都木有。那么&#xff0c;当我们拿到一个算法赛题后&#xff0c;如何破题&a…

Angular4学习笔记(六)- Input和Output

概述 Angular中的输入输出是通过注解Input和Output来标识&#xff0c;它位于组件控制器的属性上方。 输入输出针对的对象是父子组件。 演示 Input 新建项目connInComponents:ng new connInComponents.新增组件stock:ng g component stock.在stock.component.ts中新增属性stockN…

Python 常见加密方式和实现

Python 加密与解密小结 这篇文章主要介绍了Python 加密与解密,使用base64或pycrypto模块 前言 据记载&#xff0c;公元前400年&#xff0c;古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间&#xff0c;德国军方启用“恩尼格玛”密码机…

jenkins日志乱码linux,Jenkins控制台中乱码问题解决

由于服务器环境及应用层各版本的不同、编码方式的不同因此会有很多种情况会出现乱码问题。由于Jenkins中的job运行的是独立的一个shell环境&#xff0c;许多的环境变量与服务器中是不一样的&#xff0c;因此在job中执行的命令也就会有所差异。因此可以在job中执行env命令&#…

13,反转链表《剑指offer》

题目&#xff1a; 输入一个链表&#xff0c;反转链表后&#xff0c;输出链表的所有元素。 思路&#xff1a; 反转链表&#xff0c;对于片段 1--->2--->3循环操作&#xff1b; 要反转链表需要两步&#xff1a; 一&#xff0c;将2->next指向1 &#xff08;如果不保存3那…

什么是面试的关键?资深HR告诉你!

求职指南、面试宝典、应聘手册……到任何一个书店去转转&#xff0c;总能发现一两本这样的书&#xff0c;有关面试应聘的包装技巧实在太多&#xff0c;既让应聘者眼花缭乱、无所适从&#xff0c;也让人事经理头疼&#xff0c;总担心会被应聘者的包装所蒙骗。东方控股集团有限公…

windows商店_Windows记事本应用现在可以从Microsoft Store中获得

早在2019年8月&#xff0c;微软就宣布将把人们最常用的Windows记事本应用搬到应用商店&#xff0c;让这款深受用户喜爱的应用更新速度更快、响应更灵敏。12月晚些时候&#xff0c;微软却放弃了这一计划&#xff0c;也没有给出太多理由。但现在&#xff0c;这一计划已经完成&…

.net core linux 编译,.NET Core 源码编译的问题解析

引言&#xff1a; .NET Core 源码编译https://github.com/dotnetgit clone https://github.com/dotnet/runtime.git一&#xff1a;Windows 编译VS 2019 16.6(不要安装预览版)Win 10 专业版&#xff0c;最新版本 (1903/2004)长路径支持&#xff1a;组策略(gpedit.msc) > 计算…

jmeter 压测duobbo接口,施压客户端自己把自己压死了

jmeter 压测duobbo接口&#xff0c;jmeter代码不合理&#xff0c;导致每执行一次请求&#xff0c;会调用一次消耗内存的实例化。导致越压越慢&#xff0c;请求发不出去。这个时候需要考虑修改代码了。 截图中&#xff0c;tps越来越少。 原来初始化的代码放在 runTest中执行。修…

oracle pl/sql 包

包用于在逻辑上组合过程和函数&#xff0c;它由包规范和包体两部分组成。1)、我们可以使用create package命令来创建包&#xff0c;如&#xff1a;i、创建一个包sp_packageii、声明该包有一个过程update_saliii、声明该包有一个函数annual_income --声明该包有一个存储过程和一…