在MBD(基于模型的设计)中涉及到了各种各样的文本文件,对文本文件的自动化处理可以大大提高工作效率。本文简单介绍处理文本文件的第一步——导入文本文件到Matlab。

文章目录

  • 1 文本文件
  • 2 读取文本文件
    • 2.1 fscanf
    • 2.2 fileread
  • 3 写入文本文件
  • 4 总结

1 文本文件

会用电脑的人对文本文件都不陌生。能通过记事本或者Notepad++这类编辑器打开,然后能看到里面写的是啥的文件都是文本文件。文本文件在MBD中十分常见,包括:C代码、txt文件、批处理文件、Matlab脚本、dbc文件、编译器的配置文件等等。由此可知,对文本文件的读写经常出现在以下工作场景:

1)手写代码。因为不是所有的C代码都是由Simulink生成出来的,有些非控制策略的功能很难通过Simulink建模。所以或多或少需要一部分代码由人工手写,比如说底层和应用层接口函数、诊断、校验等。

2)生成批处理文件调用编译器。用编译器编译的方式不止是通过人工点击界面中的编译按钮,也可以通过批处理文件调用编译器开放的接口。这一点十分重要,通过批处理文件调用编译器是自动化持续集成的关键。

3)其他各种应用场景。

2 读取文本文件

所谓读取文本文件,就是把一个可以通过记事本打开的文件中的内容,读取到Matlab中的某个变量里。这里讨论的是读取出字符串,因为字符串具备更普遍的意义,数值可以通过字符串转换得到。

首先在当前路径下建立一个demo.txt的文本,随便写点东西,供后面读取。

2.1 fscanf

在Matlab命令行输入如下代码:

>> fid = fopen('demo.txt','r');
>> text = fscanf(fid,'%s');
>> fclose(fid);
>> texttext ='Thisisademofile.Author:chhttty'

可以看出,这几行把文本内容读出来了,保存在了text这个变量中。

等等,好像哪里不对。为啥读出来空格都没了呢?这就是fscanf的不方便之处了,不能很容易地将所有文本内容按照我们所看到的样子读出来。具体原因可以看一下帮助文档。

2.2 fileread

博主推荐使用fileread函数来读文本文档,用起来是真的香。只要一句话就可以读出文本地所有内容。

>> fileread('demo.txt')ans ='This is a demo file.Author:chhttty'

看一下ans里的字符串,把文本原封不动的给搬过来了。然后就可以正则表达式,分割,替换啥的各种花样玩起来了。

稍微提一下另一个函数,如果想要一行一行地处理文本,但是这里读出来是个整个的字符串该怎么办呢?只要用一下splitlines函数就可以拆成每一行,放入一个cell中。

>> splitlines(text)ans =2×1 cell 数组{'This is a demo file.'}{'Author:chhttty'      }

然后再用for循环去一个个处理。

3 写入文本文件

写入文本文件没啥好说的,看下面的代码:

>> fid = fopen('demo2.bat','w');
>> fprintf(fid,text);
>> fclose(fid);

运行完以后就把刚刚读出来的字符串写到了demo2.bat文件中了。可以看出,不管后缀是啥都可以读写。

这里注意一下,别忘了用fclose把打开的文件关闭,不然会一致占用。

4 总结

本文很简单的介绍了读写文本的实用方法,后续会结合具体的例子,挖掘文本处理的强大功能。

>>返回个人博客总目录

Matlab编程技巧:文本文件的读写相关推荐

  1. Matlab编程技巧:打开模型时加载数据字典

    本文研究通过回调函数,在打开模型时加载数据字典到工作空间中. 文章目录 1 问题引入 2 简单例程 2.1 模型配置 2.2 数据字典表格 2.3 创建脚本 3 效果演示 4 总结 1 问题引入 在& ...

  2. Matlab编程技巧:通过Matlab脚本批量修改Simulink模块的大小,背景颜色

    Matlab编程技巧:通过M脚本修改Simulink模块的大小,背景颜色 M脚本修改Simulink模块的大小,背景颜色 选取一个Simulink模型,获取模块参数,在命令行输入代码: sysBolc ...

  3. Matlab编程技巧:通过脚本获取/修改Simulink信号线参数

    上一篇博客<Matlab编程技巧:批量获取/修改Simulink模块参数>中,说明了如果通过matlab脚本批量获取/修改Simulink模块参数.具体方法可以参考https://blog ...

  4. Matlab学习笔记——文本文件的读写

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 目录 文本文件的读写 fscanf函数和fprintf函数 fmt由%加上格式符组成 文本文件的读写 fscanf函数和 ...

  5. 30多个实用matlab编程技巧

    感谢关注懂科学的程序员公众号!如果公众号文章对您有帮助,别忘了点击分享和"在看"哦!若您对公众号有什么意见或建议,请在公众号中回复或在任意文章底部留言! 今天给大家介绍一些编程小技 ...

  6. Matlab编程技巧:导入A2L文件

    本文研究如何通过Matlab脚本导入A2L文件,并将A2L文件的一些信息写入表格中. 文章目录 1 A2L文件 2 A2L文件的解析 3 将A2L信息导入表格 3.1 A2L中的变量信息 3.2 Ma ...

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

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

  8. Matlab编程技巧:通过脚本导入Excel数据字典

    本文研究如何将Excel表格中的数据字典导入到Matlab工作空间中,并在建模时使用. 文章目录 1 数据字典的概念及管理方式 2 Excel表格模板建立 3 脚本导入数据字典 3.1 导入方法 3. ...

  9. Matlab编程技巧:通过Matlab管理git

    本文描述通过Matlab管理git的方法,以Matlab2018a版本为例.如果比较熟悉Git的命令行操作,会有比较深的体会. 文章目录 1 克隆代码仓库 2 操作git指令 3 分支操作 4 总结 ...

最新文章

  1. Redis学习-String
  2. 金融工程相关问题积累与解决
  3. [翻译]Triggerless design.md
  4. Java字符串常用操作
  5. Linux C中发现无法连接到math.h中的数学函数解决办法
  6. boost asio io_context 没任务不退出
  7. 你所坚信的,就是你的生活
  8. jQuery原型方法first,last,eq,slice源码分析
  9. 安全加固脚本及解析等保2.0(仅供参考)
  10. MaxPooling里面的padding
  11. 南科大计算机系:将开源和企业引入计算机课程教学
  12. MT8665原理图芯片资料介绍
  13. 分布式事务解决方案(一)Seata集成和使用
  14. Linux磁盘配额(EXT4XFS)
  15. LED亮5秒灭5秒C语言程序代码,单片机【木仓示申吧】_百度贴吧
  16. 使用Keras构建深度图像搜索引擎
  17. Altium Designer在由原理图导入PCB图报错:Number of nets in differential pair NET-TX+ is 1 instead of 2
  18. 启天m420进入不了bios_联想启天M420c装win7及BIOS设置教程(USB驱动可用)
  19. 基于SSH的可扩展的程序代码源码Web在线评测系统
  20. 判断两条直线是否相交c语言,计算几何-两条线段是否相交(三种算法)

热门文章

  1. OpenCV之阈值化操作总结
  2. 企业邮箱注册申请流程,企业邮箱怎么注册账号?
  3. 我的世界自制mod{0}
  4. Java工程师资格证书
  5. 存量时代,汽车4S店要通过什么服务来吸引消费者
  6. 明明白白给XBOX 360建兴光驱刷LT2光驱固件
  7. ubuntu命令行查看dns_Ubuntu命令行网络配置
  8. 苹果新专利:用AR眼镜来控制iPhone屏幕输出,保护隐私
  9. html图片上下居中的源代码,厉害了我的哥,css图片居中原来有这么多种方法
  10. 安卓APP安装兼容性[应用是非正式发布版本, 当前设备不支持安装。]