matlab中如何读取文本文件.docx

上传人:scccc 文档编号:14423963 上传时间:2022-02-05 格式:DOCX 页数:9 大小:32.22KB
返回 下载 相关 举报
matlab中如何读取文本文件.docx_第1页
第1页 / 共9页
matlab中如何读取文本文件.docx_第2页
第2页 / 共9页
matlab中如何读取文本文件.docx_第3页
第3页 / 共9页
matlab中如何读取文本文件.docx_第4页
第4页 / 共9页
matlab中如何读取文本文件.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《matlab中如何读取文本文件.docx》由会员分享,可在线阅读,更多相关《matlab中如何读取文本文件.docx(9页珍藏版)》请在三一文库上搜索。

1、mat lab中如何读取文本文件今天需要做个matlab读取txt文件,在网上收集了下,查到了几篇不错的,总结一下,方 便大家(包括me)使用:下面这个函数是取filein中的第line行写入fileout中的程序,如果想实现取特定几行, 只要稍微修改一下就可以。function dataout-dataread(filein,fileout,line)fidin=fopen(filein,r9);fidout=fopen(fileout,*w*);nline=0;while feof(fidin) %判断是否为文件末尾 tline=fgetl (fidin) ; % 从文件读行nline=n

2、line+1; if nline=linefprintf(fidout,%sn,tline);dataout=tline;endendfclose(fidin);fclose(fidout);%调用格式:dataout=dataread(filein, fileout, line)如果你的txt文件数据是矩阵形式的,而没有其它的文字,用下面的程序就可以读任意行任 意列的数据a=textread(111.txt);t=a(l:43,4: 10);1: 43是1到43行,4: 10是4到10列的数据,当然也可以只读一个数据,如果你的matlab 没有textread函数,直接从mathworks下

3、载就行*根据txt文档不同种类介绍不同的读取数据方法转自:hi. baidu. /youngbrave/blog/item/878db31fcd4f220f304el5bb. html 一、纯数据文件(没有字母和中文,纯数字)对于这种txt文档,从matalb中读取就简单多了例如 test, txt 文件,容为 “17.901 -1. 1111 33. 04517. 891 -1. 1286 33. 04517. 884 -1. 1345 33.045”可以在command window中输入load test, txt ,然后就会产生一个test的数据文件,容 跟test, txt中的数据一

4、样;另一种方法是在file/import data/next/finish也可产生一个叫test的数据文件。二、中英文和数据如testL txt“你好 欢迎来到振动论坛vib. hit. edu. cni u ill mi2 22 222 22223 33 333 33334 44 444 44445 55 555 5555”这样的文件怎么读入数据呢?方法有多种,现举两个比较简单实用的。方法一:file/import data./next/finish whosNameSizeBytes Classdata5x4160 doub1e arraytextdata4x1300 cel 1 arra

5、yGrand total is 54 elements using 460 bytes datadata =111 111 11112222222222333333333344444444445555555555 textdatatextdata =,你好,欢迎来到振动论坛,vib. hit. edu. cn方法二:a 1,a2,a3,a4=textread(test 1. txt,%s%s%s%s,header1ines,4)说明:如可以是其他形式,跟读入的数据类型有关,比如这里也可以用如,f等。这里%s的个数和al,a2,a3,a4对应。 al,a2,a3,a4=textread(test

6、l. txt,%s%s%s%s,header1ines,4)al =T*2r,3r,45a2 =,IT22334455a3 =(Hl222333444555a4 =,nir*22221333344445555因以字符串的形式读入,所以有三、中文数据英文 混乱如test, txt你好1 11 in mi欢迎来到振动论坛2 22 222 22223 33 333 33331111111111vib. hit. edu. cn4 44 444 44445 55 555 5555说明:这种容格式的文件用上面的方法是不行的。以下是由chinamaker编写的一种方法:fidin=fopen(F test

7、.txt);fidout=fopen(rmkmatlab. txt,w); while feof(fidin)tline=fgetl(fidin);if double(11ine(1)=48&doub1e(tline(l)=57fprintf(fidout,f%snn ,tline); 据写入文件MKMATLAB. txtcontinue次循环endendfclose(fidout);MK二importdata(r MKMATLAB.txt); 量名为MK,实际上它不显示出来 MK%打开test2. txt文件% 创建 MKMATLAB. txt 文件%判断是否为文件末尾%从文件读行%判断首字

8、符是否是数值%如果是数字行,把此行数%如果是非数字继续下一%将生成的MKMATLAB. txt文件导入工作空间,变MK%1 2 3.345 1234.5422 122222222222333333333344444444445555555555Matlab中从文件夹中批量读取文件的做法function read_data=batch_read_file(file_type);% -一文件已完成,程序已修正一-%可以读取的文件中,若有列数不相同的,则补nan% 数据文件中只能是数字%*. xls文件只能是英文或数字命名%批量读数据的程序注,只能读取*. txt类文件,且文件必须有后缀名% rea

9、d data A:batch read fileC *. txt)% read data A=batch read fileC *. xls)% file_type为文件的格式%返回假read data为元胞数值,保存谋取到的数据%对xls文件的说明:% xls文件以文件名升序排序% xls文件只能容许一个工作表,若有多个,则读取的为名字值最大的一个工作表% file_type=*. txt类 or file type=*. xls;% 示例:在数据文件中有如下容l.txt%1.2222 2. 3333 3. 4444%123456789% 读出的数据是一个(3,9)的矩阵空缺的部分为nanf

10、ile read=dir(file type) ;%获得要读取的文件列表XLS XLS XLS XLS-+-%在此段读取* xls类文件if strcmp(file_type,*. xls)for i = l:length(file.read)file name(i =fi 1 e read(i). name;% 获取文件名的列表%开始准备向从xls文件中读取数据read datai=xlsread(file namei);endelseTXT TXT TXT TXT-+-%在此段读取*. txt类文件for i=l:length(file read)file name(i=fi1e_read

11、(i). name;f i d=fopen(f ile_namei,r);%开始准备向从文件中读取数据k=l; while feof(fid)%这儿用fgetl似乎也没有错temp=fgets(fid);length temp data(k)=length(str2num(temp) ;% 求长度temp read dataik=str2num(temp);% 写%k=k+l;end%max row-max (length temp data) ;%求最大的长度,以确定补nan的个数 %for j=l:k-1len=length(temp read datai j);if lenmax_rowtemp read dataij (len:max row)=nan;endread data(i)(j,:)=temp read datai j;endfclose(fid);endend本 文 来 自 CSDN 博 客, 请 标 明 出 处 blog. csdn. net/1 ianxiajian1ing/archive/2009/02/18/3905268. aspx

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1