matlab读取数据文件

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


>> 





猜你喜欢

转载自blog.csdn.net/qq_43182939/article/details/86624017