matlab中如何读取TXT数据文件.doc
文本预览下载声明
今天需要做个matlab读取txt文件,在网上收集了下,查到了几篇不错的,总结一下,方便大家(包括me)使用:
下面这个函数是取filein中的第line行写入fileout中的程序,如果想实现取特定几行,只要稍微修改一下就可以。function dataout=dataread(filein,fileout,line)fidin=fopen(filein,r);fidout=fopen(fileout,w);nline=0;while ~feof(fidin) % 判断是否为文件末尾tline=fgetl(fidin); % 从文件读行nline=nline+1;if nline==linefprintf(fidout,%s\n,tline);dataout=tline;endendfclose(fidin);fclose(fidout);%%%%%%%%%%%%%%%%%%%%%%%%%%调用格式:dataout=dataread(filein,fileout,line)如果你的txt文件数据是矩阵形式的,而没有其它的文字,用下面的程序就可以读任意行任意列的数据a=textread(ll.txt);t=a(1:43,4:10);1:43是1到43行,4:10是4到10列的数据,当然也可以只读一个数据,如果你的matlab没有textread函数,直接从mathworks网站下载就行。
根据txt文档不同种类介绍不同的读取数据方法
转自:/youngbrave/blog/item/878db31fcd4f220f304e15bb.html
一、纯数据文件(没有字母和中文,纯数字)
对于这种txt文档,从matalb中读取就简单多了
例如test.txt文件,内容为“17.901 -1.1111 33.045????????????????????????????????????????? 17.891 -1.1286 33.045????????????????????????????????????????? 17.884 -1.1345 33.045”
可以在command window中输入load test.txt ,然后就会产生一个test的数据文件,内容跟test.txt中的数据一样;另一种方法是在file/import data....../next/finish 也可产生一个叫test的数据文件。
二、中英文和数据如test1.txt
“你好欢迎来到振动论坛1 11 111 11112 22 222 22223 33 333 33334 44 444 44445 55 555 5555”这样的文件怎么读入数据呢?方法有多种,现举两个比较简单实用的。
方法一:file/import data....../next/finish whosName?????????? Size?????????????????? Bytes Class
data?????????? 5x4????????????????????? 160 double arraytextdata?????? 4x1????????????????????? 300 cell array
Grand total is 54 elements using 460 bytes
data
data =
?????????? 1????????? 11???????? 111??????? 1111?????????? 2????????? 22???????? 222??????? 2222?????????? 3????????? 33???????? 333??????? 3333?????????? 4????????? 44???????? 444??????? 4444?????????? 5????????? 55???????? 555??????? 5555
textdata
textdata =
??? 你好??? 欢迎来到??? 振动论坛???
方法二:[a1,a2,a3,a4]=textread(test1.txt,%s%s%s%s,headerlines,4)说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。这里%s的个数和[a1,a2,a3,a4]对应。 [a1,a2,a3,a4]=textread(test1.txt,%s%s%s%s,headerlines,4)
a1 =
??? 1??? 2??? 3??? 4??? 5
a2 =
??? 11??? 22??? 33???
显示全部