问题描述:使用matlab,如何将数据一次从文本文件读出?如何将矩阵数据一次性写入文本文件?
批量读出文本中的数据常用的函数是importdata(),可以分别导入数据中的字符和数值数据,并可以跳过指定行等,importdata很强大,不仅可以操作文本数据,同样可以读取二进制数据,比如图像。简单介绍下其用法:
A = importdata(filename,delimiterIn,headerlinesIn)
函数按特定分隔符delimiterIn,跳过头headerlinesIn行读取数据,这两个参数默认可以缺省。
这里特别要讲一组方便的文本批量读写操作函数(Read/Write matrix from/to ASCII-delimited file),也即dlmread和dlmwrite,他们不用繁琐的fopen等也是很愉悦的。
1) dlmread
基本用法:
M = dlmread(filename) % 直接读取一个数值文本文件
M = dlmread(filename,delimiter) % 按特定分隔符读取一个文件
M = dlmread(filename,delimiter,R1,C1) % 从指定行列读取文件,通常可以用这种方式提过字符行
M = dlmread(filename,delimiter,[R1 C1 R2 C2]) % 读取指定行列区间的数据
2) dlmwrite
基本用法:
dlmwrite(filename,M) % 将矩阵M写入文件filename中
dlmwrite(filename,M,'-append') % 支持追加写
dlmwrite(___,Name,Value) % 支持额外的定义参数,比如精度'precision','%0.6f',分隔附'delimiter','\t'
dlmwrite(filename,M,delimiter) % 按特定分隔附写数据
dlmwrite(filename,M,delimiter,row,col) % 在文件中的指定行列开始写
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)