- 16
- 0
- 约1.34万字
- 约 17页
- 2018-06-03 发布于福建
- 举报
matlab中使用文本文件进行数据存取的的技巧总结
matlab中使用文本文件进行数据存取的技巧总结
MATLAB对于文本文件(txt)进行数据读取的技巧总结(经典中的经典)由于本帖内容较多,部分转自他人的心得,因此,凡转贴的地方仅用--转--标注,原作者略去,在此对所有原作者表示感谢!
特别说明:由于大家在I/O存取上以txt文件为主,且读取比存储更麻烦(存储的话fwrite,fprintf基本够用),因此下面的讨论主要集中在txt文件的读取上。除了标注了转之外,其余心得均出于本人经验之结果,欢迎大家指正、补充。
一.基本知识:
--转--
1.二进制文件与文本文件的区别:
将文件看作是由一个一个字节(byte)组成的,那么文本文件中的每个字节的最高位都是0,也就是说文本文件使用了一个字节中的七位来表示所有的信息,而二进制文件则是将字节中的所有位都用上了。这就是两者的区别;接着,第二个问题就是文件按照文本方式或者二进制方式打开,两者会有什么不同呢?其实不管是二进制文件也好,还是文本文件也好,都是一连串的0和1,但是打开方式不同,对于这些0和1的处理也就不同。如果按照文本方式打开,在打开的时候会进行translate,将每个字节转换成ASCII码,而以按照二进制方式打开的话,则不会进行任何的translate;最后就是文本文件和二进制文件在编辑的时候,使用的方式也是不同的。譬如,你在记事本中进行文本编辑的时候,你进行编辑的最小单位是字节(byte);而对二进制文件进行编辑的话,最小单位则是位(bit),当然我们都不会直接通过手工的方式对二进制文件进行编辑了。
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种:
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:
ASCII码0011011000111000
↓↓↓↓
十进制码:5 67 8
共占用4个字节。ASCII码文件可在屏幕上按字符显示,例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。由于是按字符显示,因此能读懂文件内容。
二进制文件是按二进制的编码方式来存放文件的。例如,数5678的存储形式为00101110只占二个字节。二进制文件虽然也可在屏幕上显示,但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。因此也把这种文件称作流式文件。
2.文本模式(textmode)和二进制模式(binarymode)有什么区别?
流可以分为两种类型:文本流和二进制流。文本流是解释性的,最长可达255个字符,其中回车/换行将被转换为换行符\n,(如果以文本方式打开一个文件,那么在读字符的时候,系统会把所有的\r\n序列转成\n,在写入时把\n转成\r\n)。二进制流是非解释性的,一次处理一个字符,并且不转换字符。
注:
\n一般会操作系统被翻译成行的结束,即LF(Line-Feed)
\r会被翻译成回车,即CR(Cariage-Return)
对于文本文件的新行,在UNIX上,一般用\n(LF)来表示,Mac上用\r(CR)来表示,
Windows上是用\n\r(CR-LF)来表示。
通常,文本流用来读写标准的文本文件,或者将字符输出到屏幕或打印机,或者接受键盘的输入;而二进制流用来读写二进制文件(例如图形或字处理文档),或者读取鼠标输入,或者读写调制解调器。如果用文本方式打开二进制文件,会把0D 0A自动变换成\n来存在内存中。写入的时候反向处理。而二进制方式打开的话,就不会有这个过程。但是,Unicode/UTF/UCS格式的文件,必须用二进制方式打开和读写。
---
上述基础其实大可以略过,简言之,对用户来说:在matlab中存储成为二进制还是文本文件取决于fopen的方式,如果用wt,则存储为文本文件,这样用记事本打开就可以正常显示了;如果用w则存储为二进制文件,这样用记事本打开会出现小黑方块,要正常显示的话,可以用写字板或UltraEdit等工具打开。
二.Matlab的I/O文件操作使用技巧和总结:
1.Matlab支持的I/O文件(对应取/存操作)类型:(所有文件I/O程序不需要特殊的工具箱)
(注:从上表可以看到,matlab不支持doc格式的文档存取(因为doc文档包含很多格式控制符),请改用txt或者dat格式)
2.Matlab的I/O文件指南:
以下是部分对应的中文译文:
--转--
本技术支持指南主要处理:ASCII,binary,and MAT files.
要得到MATLAB中可用来读写各种文件格式的完全函数列表,可以键
您可能关注的文档
- Excel制表的技巧 47 函数和数据库.doc
- Excel制表的技巧 49 函数应用.doc
- Excel制表的技巧 外部函数 数组公式.doc
- Excel制表的技巧 9 快速录入.doc
- Excel制表的技巧 60 数据排序.doc
- Excel的小的技巧.doc
- EXCEL经典的技巧63例.doc
- EXCEL统计图表的绘制使用的技巧.doc
- Excel表格的使用的技巧.doc
- E语言学习2.doc
- 某镇领导班子2025年度民主生活会对照检查材料.docx
- 高级中学党政办公室主任2025年度述职述廉报告.docx
- 在镇“锤炼作风提效能,凝心聚力建新功”主题春训活动动员部署会上的讲话.docx
- 在2026年春季开学教职工会议上的讲话.docx
- 公司党支部2025年度组织生活会对照检查材料.docx
- 在树立和践行正确政绩观学习教育动员部署会议上的讲话.docx
- 专题党课:筑牢作风“防火墙” 展现司法新担当.docx
- 在树立和践行正确政绩观学习教育专题研讨会上的发言材料.docx
- 在公司2026年度党建暨党风廉政大会上的讲话.docx
- 在县委党的建设工作领导小组会议上关于开展树立和践行正确政绩观学习教育部署工作的讲话.docx
原创力文档

文档评论(0)