data1.txt:
0 3886.162 2200.938 141.240
1 3721.139 2208.475 141.152
2 3866.200 2198.936 141.126
3 3678.048 2199.191 141.250
4 3685.453 2203.726 141.241
分别采用load、importdata、textread、fscanf、textscan和fread函数读取文本数据文件。
dat1=load('data1.txt')
format long g
dat2=import('data1.txt')
[a,b,c,d]=textread('data1.txt','%2d %8.3f %8.3f %7.3f')
dat2(1:2,1:2)%提取矩阵的指定行和列组成的新矩阵
fid=fopen('data1.txt');%以只读模式打开该文本问价你,为fscanf和textscan函数的读取操作做准备
dat3=fscanf(fid,'%g',[4,inf])%采用fscanf函数读取该文件,逐列读,逐行显示,行列互换
frewind(fid)%将文件指针移动到文件开头
dat4=textscan(fid,'%2d %8.3f %8.3f %7.3f')%采用textscan函数读取文本文件的数值到单元数组中
fclose(fid)%关闭文件
关闭后就不能再读了,除非再次打开
fid=fopen('data1.txt','rt')%以 文本模式打开该文件
dat5=fread(fid)
function y = fun(x)
a = [1 2 3;
4 5 6;
7 8 9];
y = a * x;
dat1=importdata('fun.m')
使用textscan函数
celldisp(dat3)
读取包含有文本和数值的数据文件。
时间 参数1 参数2 参数3
00:00:00:000 0.000325 0.000378 0.000598
00:00:00:040 0.000256 0.000245 0.000698
00:00:00:080 0.000369 0.000251 0.000651
读取数值和文本混合的数据文件
串口数据以混合格式存储示例
串口1帧数:
4
串口1数据:
时间 参数1 参数2 参数3
00:00:00:000 0.000325 0.000378 0.000598
00:00:00:040 0.000256 0.000245 0.000698
00:00:00:080 0.000369 0.000251 0.000651
00:00:00:120 0.000372 0.000249 0.000648
串口2帧数:
3
串口2数据:
时间 参数1 参数2
00:00:00:000 0.000325 0.000378
00:00:00:040 0.000256 0.000245
00:00:00:080 0.000369 0.000251
00:00:00:120 0.000372 0.000249
对于这种混合格式的文件,应采用textread或textscan函数读取其数据(对于数据量大的文本文件,不推荐使用textread函数读取数据)
dat1=textread('data3.txt','%s','delimiter','\n')
dat1 =
'串口数据以混合格式存储示例'
'串口1帧数:'
'4'
'串口1数据:'
'时间 参数1 参数2 参数3'
'00:00:00:000 0.000325 0.000378 0.000598'
'00:00:00:040 0.000256 0.000245 0.000698'
'00:00:00:080 0.000369 0.000251 0.000651'
'00:00:00:120 0.000372 0.000249 0.000648'
''
'串口2帧数:'
'3'
'串口2数据:'
'时间 参数1 参数2 '
'00:00:00:000 0.000325 0.000378'
'00:00:00:040 0.000256 0.000245'
'00:00:00:080 0.000369 0.000251'
'00:00:00:120 0.000372 0.000249 '
>> n1=str2num(dat1{3}
n1=str2num(dat1{3}
|
Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.
>> n1=str2num(dat1{3})
n1 =
4
>> dat1_1=dat1(6:9)
dat1_1 =
'00:00:00:000 0.000325 0.000378 0.000598'
'00:00:00:040 0.000256 0.000245 0.000698'
'00:00:00:080 0.000369 0.000251 0.000651'
'00:00:00:120 0.000372 0.000249 0.000648'
>> dat1_1
dat1_1 =
'00:00:00:000 0.000325 0.000378 0.000598'
'00:00:00:040 0.000256 0.000245 0.000698'
'00:00:00:080 0.000369 0.000251 0.000651'
'00:00:00:120 0.000372 0.000249 0.000648'
>> iscell(dat1_1)
ans =
1
>> dat1_2=cell2mat(deblank(dat1_1))
dat1_2 =
00:00:00:000 0.000325 0.000378 0.000598
00:00:00:040 0.000256 0.000245 0.000698
00:00:00:080 0.000369 0.000251 0.000651
00:00:00:120 0.000372 0.000249 0.000648
>> dat1_2(1)
ans =
0
>> dat1_2(2)
ans =
0
>> dat1_2(5)
ans =
0
>> dat1_3=str2num(dat1_2)
dat1_3 =
0.000325 0.000378 0.000598
0.000256 0.000245 0.000698
0.000369 0.000251 0.000651
0.000372 0.000249 0.000648
>>