用实例介绍Matlab读写文本文件的方法,包括load、dlmread、csvread、importdata、textscan、dlmwrite、csvwrite、save、fprintf函数的用法。
读取文本方法
1. 纯数据:数字、科学计数法
test.txt 文件内容如下:
1 2 3
4 5 6
1,2,3
4,5,6
1,2;3
1e+2 1.32e+1 2e+2
1e+2 1.32e+1 2e+2
推荐使用 load 函数,代码如下,空格、逗号、分号隔开均可,要求数据列数一致。
data
2. 包含头信息
text.txt 文件内容如下:
head 1
head line 2
1e+2 1.32e+1 2e+2
1e+2 1.32e+1 2e+2
1e+2 1.32e+1 2e+2
使用 importdata、textscan 函数:
% 从第3行开始读取数据
如果数据严格对其,即分隔符完全一样,如下都是一个空格分开:
head 1
head line 2
1e+2 1.32e+1 2e+2
1e+2 1.32e+1 2e+2
1e+2 1.32e+1 2e+2
还可以使用 dlmread 函数:
data2
如果数据严格对其,并用逗号分隔:
head 1
head line 2
1e+2, 1.32e+1, 2e+2
1e+2, 1.32e+1, 2e+2
1e+2, 1.32e+1, 2e+2
还可以使用 csvread 函数:
content
3. 文字和数字穿插
head 1
head line 2
1e+2, 1.32e+1, 2e+2
1e+2, 1.32e+1, 2e+2
1e+2, 1.32e+1, 2e+2
content 1
content 2
1 2 3 4
5 6 7 8
需要用到 textscan 函数,两种思路:(1)指定从某行读,需要打开文件两次;(2)逐行读取,数值部分连续读取,推荐。
fid
4. 数字不对齐
1 2 3
4 5
6
使用 dlmread 函数,缺少的部分会补零;
data
5. 复数矩阵
1+1i, 1+2i
1+1i, 1+2i
使用 dlmread、textscan 函数:
data1
6. 日期形式
2020-4-13, 10:10:10.111 AM
2020-4-13, 10:10:10.111 AM
2020-4-13, 10:10:10.111 AM
使用 textscan 函数:
fid
写文件方法
1. 写数字
使用 save、dlmwrite、csvwrite函数:
% 保存数据、间隔tabs宽度、追加数据:
2. 写复数
使用 dlmwrite 函数:
x
3. 带有头文件的文本
data
【秘籍】
- 读取数据时,根据不同的数据格式选择最合适的函数;
- 写数据比较自由,万能的方法就用 fprintf 函数。