- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Matlab Coder的基本使用
权利声明:本文系雷声天下个人学习所用,将Mathworks 公司高级工程师Loren 的日志翻译
成中文,与大家分享。喜欢 Matlab 的同学可以好好学习一下。不可以被用作商业利用啊,
违者必究!!!
本文的问题:Matlab Coder 的基本使用
Matlab 的C 语言自动生成 (一)
Matlab 2 C 语言简史:
2011 年4 月Mathworks 公司将Matlab 的M2C 语言生成功能作为一个独立的产品推出,这个
功能是的我们可以从Matlab 算法生成可读的、端口模块化的、订制的C 代码。其实Matlab
的老用户们不觉得这是什么新鲜的功能,下面我们给出这个功能的日程表
2004 在Simulink 中添加了 Embeded Matlab Function 模块
2007 在Real-Time Workshop 中添加了emlc 函数,现在称其为Simulink Coder 用于生成独立
的C 代码
2011 发布了 Matlab Coder,第一个独立的产品,用于从Matlab 代码中生成独立的、可读的、
模块化的C 代码
代码生成样例:
下面给出一个简单的代码生成样例:
我们手中有这样一个函数文件名称为 simpleProduct.m
若果我们使用dbtype 命令,将函数的内容按照行号显示出来,就会有如下结果
dbtype simpleProduct.m
1 function c = simpleProduct(a,b) %#codegen
2 c = a*b;
为了将这个函数生成C 文件,需要提前将文件中的输入、输出参数的维数进行指定,这时候
可以以实用Matlab 提供的Matlab Coder UI 辅助设计如图表 1 所示:
图表 1 启动Matlab Coder UI
并且按照引导生成新的功能,首先如图表 2 和图表 3 所示建立新的工程
图表 2 建立工程
图表 3 添加要生成的文件并且选择类型
导入文件成功后采用功能,对其中的参数定标,确定数据的类型和维数
图表 4 确定参数的类型和维数
图表 5 参数修改结果
点击Build 界面开始生成代码
图表 6 生成代码
图表 7 代码生成成功
代码生成成功后就可以,查看代码并且可以查看相应的报告
图表 8 相应的报告
在报告当中可以看到有哪些函数的生成了
同样的还可以采用这个工具包生成MEX 文件
让我们开始回顾这个过程:
1 首先我们开始准备文件 有可能Matlab 的某些函数不在支持转化范围,需要你重新调整算
法才是
2 验证和测试,请你生成一个MEX 函数文件来测试是否你生成的M 函数是正确的。当然具
体的过程就是你要把Mex 函数替代原有的M 函数,然后测试生结果,不行的话就返回头去
修改你的M 代码吧
3 生成:别的不说了生成吧
下面是原日志中一个成熟的例子
dbtype newtonSearchAlgorithm.m
1 function [x,h] = newtonSearchAlgorithm(b,n,tol) %#codegen
2 % Given, a, this function finds the nth root of a
3 % number by finding where: x^n-a=0.
4
5 notDone = 1;
6 aNew = 0; %Refined Guess Initialization
7 a = 1; %Initial Guess
8 count = 0;
9 h(1)=a;
10 while notDone
11 count = co
您可能关注的文档
- LED应用优势及存在问题.doc
- LED日光灯的安装方法与供电原理_拓龙LED灯饰.pdf
- LED显示屏各项参数及电源与功率的计算.pdf
- LED显示屏的基本工作原理.doc
- LED显示屏的基本构成.doc
- LED显示屏光安全及标准化研究.pdf
- LED日光灯的性能电源结构和寿命详解.pdf
- LED灯光辐射安全性测试评价研究.pdf
- LED照明灯泡的使用与选择.pdf
- LED环氧树脂封装的光学设计与模拟.pdf
- 医患关系处理艺术与礼仪.pptx
- 3.9 秦统一中国 课件—2025-2026学年统编版七年级历史上册.pptx
- 2025至2030金属家具行业市场深度研究及发展前景投资可行性分析报告.docx
- 夏天亲子活动方案.pptx
- 2025至2030金属工艺品行业市场发展分析及投资前景报告.docx
- 2025至2030金属材料产业市场深度调研及发展趋势与行业项目调研及市场前景预测评估报告.docx
- 社区运动会策划方案.pptx
- 江西心理健康课件PPT.pptx
- 2025年河南中考英语听力理解+课件.pptx
- 2025年内蒙古赤峰翁牛特旗卫生健康系统事业单位招聘14人笔试模拟试题及答案详解一套.docx
文档评论(0)