FrancisZhao:专栏文章列表以及一些说明​zhuanlan.zhihu.com

FrancisZhao:手把手教你代码生成(下):SIMULINK代码生成​zhuanlan.zhihu.com

本文主要参照书《SIMULINK仿真与代码生成技术入门到精通》

MATLAB®Coder™从MATLAB代码生成可读和可移植的C和C ++代码。 它支持大多数MATLAB语言和广泛的工具箱。可以将生成的代码集成到项目中作为源代码,静态库或动态库。还可以使用MATLAB环境中生成的代码,以加快MATLAB代码计算密集型部分。

命令窗口输入“coder”,会弹出图1界面:

图1 Coder界面

点击图1中红色方框可以加载.M文件,但是只能加载函数类文件,即文件中要有明确的输入输出,若一个文件中包含另一个文件,则要将其文档也一起加载。

加载完毕后点击右下角的 “NEXT”,进行下一步操作。

若在给出方程的一种引用方式,如图2中的Quater_to_Euler([1;0;0;0]),之后点击 “ Autodefine Input Types”,则系统可自动定义其为4*1的double矩阵。

同样也可以手动定义。点击图3中的红色方框,可以设置函数输入变量的类型。变量类型满足C语言的全部要求,也可以设置为矩阵形式,可以设置为结构体,结构体声明中可以直接输入结构体名字及变量名字。具体信息可详见蓝色的“learn more”。定义前最好知道函数输入的维数,若定义为不定维数的矩阵,影响其执行效率,增多代码数量。

图2 自动定义输入类型
图3 手动定义输入类型

设计输出后点击右下角的“NEXT”,进行下一步操作。

图4 程序检测界面

本步为源程序检测,给出函数的数值输入就可以在对话框显示出具体结果,点击图4中的“ Check For Issues”可以检测程序是否有错误不可以生成C文件,若有错误则根据提示进行修改。若无错误则会弹出图5的界面。界面下方弹出的是计算结果,程序界面显示的为调用次数。

图5 程序检测执行界面

M语言转化成C语言要在使用前声明变量,在上图中已经将pitch等变量声明为结构体形式,若按照M语言的矩阵声明格式,则会报错(如图6),若先将矩阵定义为m*n的零矩阵,则可避免错误

图6错误声明矩阵的形式

设计输出后点击右下角的“NEXT”,进行下一步操作

图6 代码生成设置

点击其中的”Build type“,其中有以下几种类型可选,通常我们 选择第一项。

图7 build type

其中的”Hardware Board“选项点击后可根据实际硬件需求来选择。举例如图8:

图8 硬件选择

点击图中的”more settings“,可进入代码生成选项窗口。

图9 代码生成窗口

选项”Paths“是选择代码生成的位置

如图10中,第二选项”Speed”则包含数据溢出等保护函数,建议不勾选。

图10 Speed

图11中, 其中”Memory“选项与处理器的能力相关,其中第一个选项框与不定长的数组有关,嵌入式开发最好不选,第二个选项则与处理器的堆栈有关,要根据处理器的堆栈大小来设置。

图11 Memory

图12中,选项“Code Appearance”与代码生成的风格有关,其中的“comments”部分建议勾选”MATLAB source code as comments“,方便代码的可读性。其他保持默认设置。

图12 Code appearance

图13中,在”Custom Code“的设置中,“Standard math library” 其中的选择C89/C90,在“Code replace library”中可以选择ARM Cortex-M3,实际上我们用的STM32F7系列的内核已经为ARM Cortex-M7,但是并没有此选项。

图13 硬件选择

最后设置完成后,点击“GENERATE”,无错误成功后为如下界面,其中的主函数为测试函数,并不执行具体的计算,其中的 initialize 函数为参数初始化函数,为空函数,可以自行添加相关初始化程序。

图14 代码生成成功后预览图

欢迎指正讨论,转载请注明,认同请点赞。

c语言随机生成int64_t类型的数据_手把手教你代码生成(上):MATLAB代码生成相关推荐

  1. 手把手教你入侵网站修改数据_手把手教你使用Python抓取QQ音乐数据(第四弹)...

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  2. mysql sql注入怎么获取数据_手把手教你通过SQL注入盗取数据库信息

    目录数据库结构 注入示例判断共有多少字段 判断字段的显示位置 显示登录用户和数据库名 获取所有数据库名 获取对应数据库的表 获取对应表的字段 获取所有的用户密码 我们都是善良的银!一生戎码只为行侠仗义 ...

  3. c语言随机生成整数存放一维数组_文科生学 Python 系列 7: Numpy 数组/索引和切片...

    第四课:本课内容: • 0. 导入 NumPy 包 • 1. 创建 NumPy 数组 • 2. 索引和切片 • 3. 读取文件 • 4. 布尔型索引 • 5. 数组的运算 • 6. 常用函数举例 Nu ...

  4. 过滤一批数据_手把手教你学numpy,从此数据处理不再慌【三】

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是numpy专题的第三篇,我们来聊聊numpy当中的索引. 上篇的末尾其实我们简单地提到了索引,但是没有过多深入.没有过多深入的原因也很 ...

  5. 怎么获取codeforces的数据_手把手教你学会新媒体运营——如何通过数据分析来优化新媒体运营...

    一般来说,我们希望运营的新媒体的每篇内容都可以获得高打开率和高分享率.但事实并不总是如愿,因此,在新媒体运营过程当中,我们需要不断地优化自身内容,以求可以获得更多的关注和流量.那么我们今天来讨论下如何 ...

  6. bootstraptable 怎么在特定行添加数据_手把手教你做一个“渣”数据师,用Python代替老情人Excel...

    大数据文摘出品 来源:medium 编译:张大笔茹 十年前,你说你是做数据的,大家的反应就是 -- 用 Excel 做做表. 现在,要成为一个合格的数据分析师,你说你不会 Python,大概率会被江湖 ...

  7. python读取mt4数据_手把手教你使用Python进行数据获取和作图

    最近在学习Python3做数据分析.就尝试用COT和汇率数据来练习一下.毕竟不实际找个东西做一下碰不到问题,也学不会啊. 话不多说,目标就是(1)抓取网络的COT数据,(2)结合MT4导出的汇率数据, ...

  8. 易语言随机生成MAC源码

    这里推荐一个生成随机模拟MAC的源码,非常简洁实用,比如我们在hook物理网卡地址时,需要生成这样的效果. 易语言api hook GetAdaptersAddresses 劫持网卡物理地址 测试输入 ...

  9. C语言随机生成成绩排序,如何实现以下功能给出1000个通过随机数生成的数据,分别用直接插入排序法、冒泡排序法、快速排序法进行排序...

    已结贴√ 问题点数:20 回复次数:2 如何实现以下功能给出1000个通过随机数生成的数据,分别用直接插入排序法.冒泡排序法.快速排序法进行排序 #include #include #include ...

最新文章

  1. Prometheus — 软件架构
  2. 记录一些使用git过程中的bug
  3. 服务器系统授权,授权方案说明
  4. hadoop中的helloword
  5. android中拷贝assets下的资源文件到SD卡中(可以超过1M)
  6. Jenkins持续集成环境常见问题分析及解决
  7. 416. Partition Equal Subset Sum
  8. Java 连接 数据库 (idea2022 + MySQL 演示,Oracle 通用)
  9. pgadmin4 去除master密码
  10. Oracle 数据库锁机制
  11. conda 安装完了之后安装torch总是失败
  12. app版本更新提醒方案
  13. RollPitchYaw傻傻分不清
  14. 国家级示范高等职业院校网址
  15. 存储结构和磁盘划分(基于RedHat7)
  16. 码云remote: error: File: , exceeds 100.00 MB
  17. 手机老是出现欠费,与月租无关,这种偷钱业务一定要尽早关掉
  18. 护卫神6588端口提权
  19. 真真切切的100%新手向---安装Arch Linux(更新时间 2018/07-26)
  20. 计算机操作系统之进程与线程

热门文章

  1. GitHub被中国人霸榜!国外开发者不开心了
  2. 服务容错、限流、资源隔离、熔断、监控…3天,撸完了!
  3. 【今晚7点半】:华为云在数字人领域的技术探索与实践
  4. 【线上直播】:5G时代VR+8K直播 刷新你的视界认知
  5. 【内核模块auth_rpcgss】netns引用计数泄露导致容器弹性网卡残留
  6. http 状态码 504 502
  7. C++编程常见问题—error: passing 'const std::map]' discards qualifiers或pass-by-reference-to-const-map导致的“d
  8. CentOS 安装及使用 terraform 最新教程
  9. idea配置tomcat里你不知道的小秘密
  10. KTV歌曲推荐-深入浅出协同过滤