2024年4月11日发(作者:)
Matlab实现文件读写的几种方法
Matlab有着强大的数据处理功能,经常需要从外部文件读取数据
或将数据写到外部文件。Matlab和外部文件进行数据交换相关的命令,
个人目前了解到的有以下几种。
(1)Load
load 从Matlab的数据文件.mat中读取变量数据,也可以
从.txt .dat等文件中读取数据。使用load命令读取数据以后在Matlab
中数据变量和文件同名。例如使用“load ”后数据变量名即
为data。
需要注意的是文件格式的不同,文件格式分为二进制格式和ASCII
格式两种。如果是二进制格式的文件,可以使用load命令直接读取。
但如果是ASCII格式的文件,需要保证数据是整齐的(每一行数据个
数要一致),否则会出错。
例:
文件(ASCII格式)
0 1
1 2 3
0
使用“load ”将会出错。
文件
0 1 2
1 2 3
2 3 4
使用“load ”能顺利读入3*3矩阵。
和load相对应的写数据命令为save,一般存为.mat文件,save
保存的文件格式为二进制格式。
二进制和ASCII的区别
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文
件两种。
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对
应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式
为:
ASC码:00110101(5) 00110110(6) 00110111(7)
00111000(8) 共占用4个字节。ASCII码文件可在屏幕上按字符显
示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件
的内容。由于是按字符显示,因此能读懂文件内容。
二进制文件是按二进制的编码方式来存放文件的。例如,数5678
的存储形式为:00010110 00101110 (十进制5678转换成二进制)
只占二个字节。二进制文件虽然也可在屏幕上显示,但其内容无法读
懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按
字节进行处理。输入输出字符流的开始和结束只由程序控制而不受物
理符号(如回车符)的控制。因此也把这种文件称作“流式文件”。
(2)importdata
importdata根据文件名将数据导入到Matlab工作区。可以导入
文件类型有很多,.txt .wav 等等。导入的数据(包括字符串和数值)
以结构形式存放在工作区,可以使用whos命令来查看工作区的数据。
importdata可以导入load不能读取的长短不一的ASCII文件。
当文件中既包含字符串又包含数值,而且数值长度个数不一时,可以
使用importdata命令。注意读取的数值矩阵列数以文件中数值第一行
的列数为标准。


发布评论