首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Matlab编程技巧:MBD中常用的Matlab函数

  • 23-09-22 00:44
  • 3005
  • 11992
blog.csdn.net

在MBD(基于模型开发)中,需要掌握一些常用的函数。这些函数经常用于搭建集成环境、生成手写代码、工具链开发等。恰当地使用函数编写Matlab脚本可以提高MBD工作的自动化程度,提高工作效率。

本文会分类列举博主工作中常用的函数,并简要说明其应用场景以及一些使用心得。同时也欢迎有其他项目经验的博友在博客下留言补充。

文章目录

  • 1 路径处理
  • 2 字符串处理
  • 3 表格处理
  • 4 文本文件处理
  • 5 Simulink模型处理
  • 6 执行DOS命令
  • 7 生成代码
  • 8 调试Matlab脚本

1 路径处理

Matlab中路径的概念十分重要,因为脚本在处理各种文件或者调用函数、模型的时候,都会涉及到路径。

关于Matlab的路径,博主也踩过很多坑,总结起来大致如下几点:
1)尽量少使用当前路径,而是使用绝对路径;
2)调用共享路径容易出一些奇怪的bug,所以尽量把共享路径映射为本地驱动器;
3)路径中尽量不要出现中文字符,尽管Matlab也能支持中文路径。

路径处理常用函数如下:

函数功能
addpath将文件夹添加至搜索路径
rmpath将文件夹从搜索路径移除
genpath生成路径与子路径
mfilename返回当前m脚本路径
fileparts拆分路径为文件夹路径、文件名和后缀
fullfile将文件夹路径和文件名组合成文件路径
cd切换当前路径

2 字符串处理

字符串类型在Matlab脚本中非常常见,譬如路径名、文件名、文件内容、表格单元格内容等都是字符串。另外很多Matlab函数的参数也是字符串。

注意,在脚本中尽量少用中文字符串。虽然Matlab对中文的兼容性非常好,但是Matlab经常会和其他的工具链交互时,其他工具容易出现中文兼容性不好的问题。

字符串处理常用函数如下:

函数功能
strcat字符串拼接,也可以使用方括号[]拼接
strcmp字符串比较
strrep替换字符串中的一部分
strfind返回一个字符串在另一个字符串中的位置
split分割字符串
contains判断一个字符串是否包含另一个
newline相当于换行符
regexp正则表达式提取

3 表格处理

表格是工作中最常见的文档形式。如果项目团队中约定好表格的内容,并且按照某种要求规范填写,就可以通过Matlab脚本来读取并使用表格中的信息。例如表格中可以定义某些接口变量,亦或是某些需要处理的文件和需求。

应用Matlab进行表格处理的时候,往往也会遇上不少坑:
1)常见的一种是不规范的表格填写。例如单元格内多了个空格符或者回车符,容易在字符串处理的时候出错;
2)表格中如果合并单元格,用matlab函数读取后会返回若干空白符,处理的时候会有些麻烦。因此尽量少使用单元格合并,也尽量不要将单元格空着。
3)如果表格的列顺序变更,可能会导致原先的Matlab脚本处理了错误的列而报错。

表格处理常用函数如下:

函数功能
xlsread常用的表格读取函数,返回Cell
xlswrite写入表格函数
readtable读取表格文件,返回Table
xlsfinfo返回表格文件中的工作表名

4 文本文件处理

可以用记事本或Notepad++打开的文件都算是文本文件,包括txt文件、c文件、头文件、a2l文件等。

工作中经常需要读取文本内容,再通过正则表达式解析出其中的关键信息。或者根据某些规则生成文本文件,例如生成具有一定规律的手写代码。

文本文件处理常用函数如下:

函数功能
fopen打开文件
fclose关闭文件
fscanf读取文件内容
fprintf写入文件内容

5 Simulink模型处理

通过Matlab脚本可以批量处理Simulink模型中具有共同特性的模块,而且Matlab中提供的API几乎可以操作所有Simulink中手动操作的部分。

Simulink模型处理函数详见博主前几章博客,相关函数:

函数功能
find_system搜索出符合条件的模块、信号线
get_param获取模块指定参数的值
set_param设置模块指定参数的值
add_block创建模块
add_line创建信号线
load_system将Simulink模型载入内存
open_system打开Simulink模型窗口
close_system关闭Simulink模型(窗口和内存)
simSimulink仿真

6 执行DOS命令

有的情况下,调用的工具需要通过命令提示符来执行,譬如一些a2l相关操作和git工具的相关指令。在Matlab中使用函数执行DOS命令的时候,要注意当前路径的切换。

执行DOS命令的函数如下:

函数功能
dos执行dos命令并返回结果
system执行操作系统命令并返回结果
winopen在Matlab外执行批处理文件

7 生成代码

除了在Simulink界面选择生成代码,也可以用Matlab函数,前提是Simulink已经配置好了。生成代码函数是实现脚本自动代码生成的关键。

生成代码函数如下:

函数功能
rtwbuild通过模型生成代码

8 调试Matlab脚本

通常,调试Matlab脚本都是在编辑器加上断点,或者设置条件断点。但是经常遇到脚本出错又很难定位到错误的位置的情况,或者即便是定位到了,也要重新跑完错误之前的代码在停留到断点处。

其实,可以通过在Matlab交互式界面中输入以下命令:

>> dbstop if error
  • 1

这样的话如果脚本运行出现错误,Matlab可以直接停留在错误处调试。

>>返回个人博客总目录

注:本文转载自blog.csdn.net的chhttty的文章"https://blog.csdn.net/u013288925/article/details/104676413"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top