
Matlab编程技巧
文章平均质量分 91
在基于模型的开发中,常用的一些Matlab技巧。
chhttty
汽车软件工程师,diy爱好者
展开
-
Matlab编程技巧:通过Matlab管理git
本文简单地描述了在Simulink中操作git常用指令地方法。原创 2022-10-23 19:27:29 · 5182 阅读 · 0 评论 -
Matlab编程技巧:A*算法仿真
本文通过Matlab编程实现A* 算法,并通过几个简单的例子,单步调试输出A*搜索的过程。文章目录1 A* 算法简介2 Matlab编程实现2.1 输入参数2.2 初始化变量2.3 循环过程2.4 循环后处理1 A* 算法简介A* 算法是一种全局路径规划算法,通过A*算法可以在一个有障碍物的地图中找到从起点到终点的路径。网上关于A* 算法的详细介绍有很多,博主也就不再赘述。推荐想学习的博友看一下这篇博文入门:《A*算法(超级详细讲解,附有举例的详细手写步骤)》,博主看完后有种醍醐灌顶的感觉,就想通过原创 2022-01-22 12:01:21 · 16895 阅读 · 0 评论 -
Matlab编程技巧:通过脚本创建Simulink模块、信号线
本文研究通过Matlab脚本创建模型的方法。文章目录1 相关函数1.1 add_block1.2 add_line1 相关函数根据博主工作经验,一个Simulink控制模型应该是由两大元素构成:模块和信号线。因此,通过Matlab脚本创建模型也有两个函数分别用于创建模块和信号线,本章节会介绍这两个函数。1.1 add_block1.2 add_line...原创 2022-01-10 20:54:54 · 13708 阅读 · 0 评论 -
Matlab编程技巧:导入DBC文件
本文研究通过Matlab函数导入DBC文件的方法,并根据博主自己的工作经验描述DBC文件中的属性信息。文章目录1 问题引入2 导入DBC示例3 DBC中的一些注意点3.1 节点(Nodes)3.2 帧(Messages)3.2.1 帧ID3.2.2 标准帧和扩展帧3.2.3 DLC1 问题引入在博主以前的一篇博客《通过正则表达式解析DBC文件》中,尝试通过Matlab的正则表达式函数来解析出DBC文件中的帧、信号信息。由于DBC的文本具有一定规律,这种方法从理论上来说是可行的。但是在实际工作中需要花费原创 2020-12-28 20:18:45 · 7854 阅读 · 0 评论 -
Matlab编程技巧:自定义Simulink菜单
本文研究如何在Simulink菜单中嵌入自定义的脚本。博客内容参考了帮助文档:Add Items to Model Editor Menus。文章目录1 问题引入2 自定义Simulink菜单过程2.1 新建注册文件2.2 项目组的函数2.3 项目的函数2.4 功能实现的函数3 模型验证4 其他注意点5 总结1 问题引入博主以前的博客分享过很多关于Matlab脚本自动化处理模型的方法。但是运行脚本经常需要切出Simulink模型,然后找到脚本来运行,还是会有一点不方便。基于这个痛点,博主研究了一下将原创 2020-12-05 21:00:01 · 3930 阅读 · 3 评论 -
Matlab编程技巧:导入A2L文件
本文研究如何通过Matlab脚本导入A2L文件,并将A2L文件的一些信息写入表格中。文章目录1 A2L文件2 A2L文件的解析3 将A2L信息导入表格3.1 A2L中的变量信息3.2 Matlab脚本3.3 导出表格4 总结1 A2L文件做汽车控制器开发的同行肯定对A2L文件不会陌生,通过A2L文件可以进行数据采集和标定。A2L文件的格式符合ASAP2标准,格式可以参照ASAP2标准手册。2 A2L文件的解析A2L文件也是文本文件,只要知道了其中的书写规则(ASAP2标准),就可以通过Matlab原创 2020-10-24 12:29:03 · 8617 阅读 · 0 评论 -
Matlab编程技巧:打开模型时加载数据字典
本文研究通过回调函数,在打开模型时加载数据字典到工作空间中。文章目录1 问题引入2 简单例程2.1 模型配置2.2 数据字典表格2.3 创建脚本3 效果演示4 总结1 问题引入在《Matlab编程技巧:通过脚本导入Excel数据字典》一文中,博主研究了通过脚本将表格里的数据字典导入到Matlab工作空间中。这种方法需要每次都要手动运行脚本,也有点不太方便。简单研究后发现,可以通过在模型中配置回调函数,使得打开模型的时候自动运行某个脚本,从而自动将表格中的数据字典导入到Matlab工作空间中。2 简原创 2020-09-11 21:05:10 · 6784 阅读 · 4 评论 -
Matlab编程技巧:通过脚本导入Excel数据字典
本文研究如何将Excel表格中的数据字典导入到Matlab工作空间中,并在建模时使用。文章目录1 数据字典的概念及管理方式2 Excel表格模板建立3 脚本导入数据字典3.1 导入方法3.2 m脚本内容3.3 m脚本简单解释4 验证与总结1 数据字典的概念及管理方式在博主的另一篇博客《Simulink代码生成:数据字典的建立、关联模型》中已经详细地解释了Simulink数据字典地概念以及三种管理方式。其中,第3.2章节介绍了通过Excel表格&m脚本地管理方案。博主工作中虽然已经不再采用这种原创 2020-09-06 12:01:10 · 9180 阅读 · 11 评论 -
Matlab编程技巧:导入arxml文件
本文研究如何导入arxml文件原创 2020-08-27 20:33:52 · 19491 阅读 · 9 评论 -
Matlab编程技巧:通过脚本写入C代码内容
本文介绍一种通过Matlab脚本写入C代码的方法,以实现通过管理表格文件就可以生成具有一定规律的C代码,从而减少人工手写代码的工作量。文章目录1 问题引入2 需求示例3 示例脚本4 脚本说明4.1 step1 读取表格信息4.2 step2 将代码内容写入变量CodeText中4.2.1 头文件、函数名、定义结构体4.2.2 使能端口时钟4.2.3 端口配置4.3 step3 将变量CodeText写入led.c文件中5 总结1 问题引入在MBD中,并非所有的代码都适合通过Simulink模型生成。通原创 2020-08-14 20:50:25 · 2434 阅读 · 0 评论 -
Matlab编程技巧:写入Excel表格
本文研究如何将Matlab变量的内容写入Excel表格,以及相关的一些技巧。文章目录1 函数2 简单示例3 写入表格的注意点3.1 写入单个单元格3.2 写入多个单元格3.3 写入0开头的数字3.4 指定所有的四个参数3.5 避免用for循环1 函数写入Excel表格的函数比较简单,只有一个函数如下:xlswrite(filename,A,sheet,xlRange)其中的参数含义如下:参数含义filename文件名,可以是绝对路径也可以是相对路径A写入表格文件的原创 2020-08-13 21:22:43 · 53702 阅读 · 0 评论 -
Matlab编程技巧:通过脚本将Simulink模型生成代码
本文介绍博主自己编写的将Simulink模型生成代码的脚本。文章目录1 问题引入2 示例代码3 生成代码脚本说明3.1 step1 生成代码准备3.2 step2 生成代码过程3.3 step3 生成代码后处理4 脚本的改进1 问题引入做MBD的博友都会经常将模型生成代码,然后拿去集成、编译。博主在工作中就面临大量的代码生成的工作。这样的工作毫无技术含量,一般是把模型打开,然后Ctrl+B生成代码,最后再把生成好的c文件和h文件拷贝到指定的位置,或者上传到Gitlab服务器做版本管理。这种工作非常原创 2020-07-23 21:36:53 · 18359 阅读 · 9 评论 -
Matlab编程技巧:通过正则表达式解析DBC文件
本文通过Matlab函数regexp的正则表达式功能,解析DBC文件中的报文帧信息。DBC文件中的信号等其他信息都可以通过类似的方式解析出来。文章目录1 DBC文件2 正则表达式函数3 实例:解析报文帧信息4 Matlab脚本5 总结1 DBC文件DBC数据库文件是用来描述CAN网络节点间数据通讯的一种文件,做汽车CAN网络通信的话肯定是绕不开DBC文件的。关于DBC文件格式的内容可以参考另一位博主的文章关于DBC文件的格式解析(DBC文件系列其二),本文后面也会引用到其中的一些知识内容。DBC文原创 2020-07-11 10:38:15 · 4789 阅读 · 12 评论 -
Matlab编程技巧:文本文件的读写
在MBD(基于模型的设计)中涉及到了各种各样的文本文件,对文本文件的自动化处理可以大大提高工作效率。本文简单介绍处理文本文件的第一步——导入文本文件到Matlab。文章目录1 文本文件2 读取文本文件2.1 fscanf2.2 fileread3 写入文本文件4 总结1 文本文件会用电脑的人对文本文件都不陌生。能通过记事本或者Notepad++这类编辑器打开,然后能看到里面写的是啥的文件都是文本文件。文本文件在MBD中十分常见,包括:C代码、txt文件、批处理文件、Matlab脚本、dbc文件、编译器原创 2020-06-28 20:40:52 · 3986 阅读 · 0 评论 -
Matlab编程技巧:路径相关函数
在Matlab编程中,不可避免地需要读取某一路径下地文件,或者将某一文件拷贝到别的路径。本文研究一些常见的路径函数。文章目录1 genpath2 fileparts3 mfilename4 fullfile1 genpath给genpath函数输入一个路径,可以返回该路径下所有的子路径的字符串,并且用分号隔开。例如输入博主的博客相关的总路径:>> genpath('D:\学习\博客\Matlab')ans = 'D:\学习\博客\Matlab;D:\学习\博客\Matlab\A原创 2020-05-11 20:43:28 · 4764 阅读 · 1 评论 -
Matlab编程技巧:正则表达式应用技巧
在字符串处理中,正则表达式堪称神器。本文简单介绍笔者在工作中运用正则表达式的一些经验,以及踩过的许多坑。文章目录1 正则表达式概念及语法2 正则表达式的方法、技巧2.1 使用match参数匹配出文本2.2 文本中的空格符2.3 文本中的换行符1 正则表达式概念及语法正则表达式是一串用于定义某种模式的字符。在Matlab脚本编程中,通常使用正则表达式在一段文本中匹配出某种固定格式的字符串。更...原创 2020-05-03 00:34:33 · 4240 阅读 · 2 评论 -
Matlab编程技巧:自定义启动和关闭函数
工作中经常会在Matlab启动完毕后先导入一些变量到工作空间,然后才可以开始Simulink建模。本文研究通过Matlab脚本在启动时自动运行某些函数,以达到导入变量的目的。文章目录1 startup.m文件2 自定义启动函数示例3 finish.m文件4 总结1 startup.m文件Matlab在启动的时候,会在其搜索路径中找到名为startup.m的文件,并运行其中的内容。创建并编写s...原创 2020-04-11 09:55:06 · 2739 阅读 · 3 评论 -
Matlab编程技巧:自定义Model Advisor检查规则
文章目录1 Model Advisor简介2 自定义Model Advisor检查规则2.1 需求目标2.2 脚本代码及含义解释sl_customization函数defineModelAdvisorTasks回调函数defineModelAdvisorChecks回调函数4 CheckGainCallback回调函数2.3 验证自定义检查规则3 参考资料1 Model Advisor简介Mo...原创 2020-04-06 15:07:04 · 7015 阅读 · 0 评论 -
Matlab编程技巧:MBD中常用的Matlab函数
在MBD(基于模型开发)中,需要掌握一些常用的函数。这些函数经常用于搭建集成环境、生成手写代码等。恰当地使用函数编写Matlab脚本可以提高MBD工作的自动化程度,提高工作效率。本文会分类列举笔者工作中常用的函数,并简要说明其应用场景以及一些使用心得。同时也欢迎有其他项目经验的朋友在博客下留言补充。原创 2020-03-05 19:14:26 · 7722 阅读 · 0 评论 -
Matlab编程技巧:通过脚本获取/修改Simulink模块参数
在MBD(基于模型的设计)开发中,可能需要反复修改simulink模型。传统的方式是通过在模型中找到相应的模块,然后点进去修改参数。本文介绍一种通过matlab脚本批量获取Simulink模块参数,并修改参数的方法。1 相关函数1.1 Objects = find_system(System,Name,Value)函数功能搜索出符合条件的模块、信号线、端口等输入参数1)...原创 2020-01-12 12:46:15 · 26634 阅读 · 1 评论 -
Matlab编程技巧:通过脚本获取/修改Simulink信号线参数
上一篇博客《Matlab技巧(二) 批量获取/修改Simulink模块参数》中,说明了如果通过matlab脚本批量获取/修改Simulink模块参数。具体方法可以参考https://blog.youkuaiyun.com/u013288925/article/details/103943921Simulink中的信号线也是带有一些属性的,譬如名称和是否关联Simulink Signal Obj。本文介绍几...原创 2020-01-21 20:58:00 · 18327 阅读 · 15 评论 -
Matlab编程技巧:通过脚本获取/修改Stateflow参数
在Simulink模型中,经常会用Stateflow做一些状态转移或者流程图的建模。除了状态转移的逻辑以外,也经常需要关注Statefolw的参数,包括Data和Event等。本文会介绍通过Matlab脚本调用API来获取和修改Stateflow参数的方法。本文例程基于Matlab2018a版本。1 手动获取/修改Stateflow参数1.首先在Matlab命令行中输入open sf_sec...原创 2020-02-29 16:36:37 · 7840 阅读 · 7 评论 -
Matlab编程技巧:通过脚本创建/修改Simulink数据字典
Simulink数据字典中的配置影响了模型生成的代码。本文举例说明如何通过Matlab脚本创建或修改Simulink数据字典。1 数据字典的概念数据字典中存储了Simulink模型中的数据信息和模型配置信息。在生成代码的时候,模型和数据字典一般是配套的。数据字典通常分为两个分区,Design Data和Configurations,分别存储了数据信息和配置信息。对于模型中的输入输出接口、观...原创 2020-02-05 19:33:24 · 14751 阅读 · 0 评论 -
Matlab编程技巧:导入Excel表格数据
在MBD(基于模型的设计)开发中,经常需要用matlab读取表格中的数据进行处理。因此,本文专门研究了一下matlab语言中用于处理Excel表格的函数,总结其用法、输入输出变量以及它们的适用场景。1 函数常用的读取Excel表格的函数有以下两个:1.1 [num,txt,raw] = xlsread(filename,sheet,xlRange)假设有一表格文件“SourceData.x...原创 2019-12-21 21:15:08 · 15700 阅读 · 1 评论