matlab中读文件的行数_matlab 中如何读取文本文件

本文详细介绍了在MATLAB中如何读取文本文件,包括读取特定行、矩阵形式数据和中英文混合数据。通过示例代码展示了如何利用`dataread`和`textread`函数进行操作,并提供了批量读取文件的方法。
摘要由CSDN通过智能技术生成

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

1、matlab 中如何读取文本文件今天需要做个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+。

2、1; if nline=linefprintf(fidout,%sn,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文。

3、档不同种类介绍不同的读取数据方法转自:http:/hi.baidu.com/youngbrave/blog/item/878db31fcd4f220f304e15bb.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中的数据一样;另一种方法是在file/imp。

4、ort data./next/finish 也可产生一个叫test的数据文件。二、中英文和数据如test1.txt“你好欢迎来到振动论坛vib.hit.edu.cn1 11 111 11112 22 222 22223 33 333 33334 44 444 44445 55 555 5555”这样的文件怎么读入数据呢?方法有多种,现举两个比较简单实用的。方法一:file/import data./next/finish whosName Size Bytes Classdata 5x4 160 double arraytextdata 4x1 300 cell arrayGrand tota。

5、l is 54 elements using 460 bytes datadata =1 11 111 11112 22 222 22223 33 333 33334 44 444 44445 55 555 5555 textdatatextdata = 你好欢迎来到振动论坛vib.hit.edu.cn方法二: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.t。

6、xt,%s%s%s%s,headerlines,4)a1 = 12345a2 = 1122334455a3 = 111222333444555a4 = 11112222333344445555因以字符串的形式读入,所以有。三、中文数据 英文 混乱如test.txt你好1 11 111 1111欢迎来到2 22 222 2222振动论坛3 33 333 3333vib.hit.edu.cn4 44 444 44445 55 555 5555说明:这种内容格式的文件用上面的方法是不行的。以下是由chinamaker编写的一种方法:fidin=fopen(test.txt); % 打开test2.t。

7、xt文件 fidout=fopen(mkmatlab.txt,w); % 创建MKMATLAB.txt文件while feof(fidin) % 判断是否为文件末尾 tline=fgetl(fidin); % 从文件读行 if double(tline(1)=48&double(tline(1) MKMK =1 11 111 11112 22 222 22223 33 333 33334 44 444 44445 55 555 5555Matlab中从文件夹中批量读取文件的做法function read_data=batch_read_file(file_type);% % 可以读取的文件中,。

8、若有列数不相同的,则补 nan% 数据文件中只能是数字% *.xls 文件只能是英文或数字命名% 批量读数据的程序 注,只能读取 *.txt类文件,且文件必须有后缀名% read_data_A=batch_read_file(*.txt)% read_data_A=batch_read_file(*.xls)% file_type为文件的格式% 返回值 read_data 为元胞数值,保存谋取到的数据% 对 xls 文件的说明:% xls 文件以文件名升序排序% xls 文件只能容许一个工作表,若有多个,则读取的为名字值最大的一个工作表% file_type=*.txt类 or file_ty。

9、pe=*.xls;% 示例:在数据文件中有如下内容 1.txt% 1 2 3.345 1234.5422 12% 1.2222 2.3333 3.4444% 1 2 3 4 5 6 7 8 9% 读出的数据是一个 (3,9)的矩阵 空缺的部分为 nanfile_read=dir(file_type);% 获得要读取的文件列表%-+-XLS XLS XLS XLS XLS-+-% 在此段读取 *.xls 类文件if strcmp(file_type,*.xls)for i=1:length(file_read)file_namei=file_read(i).name;% 获取文件名的列表% 开始。

10、准备向从 xls 文件中读取数据read_datai=xlsread(file_namei); endelse%-+-TXT TXT TXT TXT TXT-+-% 在此段读取 *.txt 类文件for i=1:length(file_read)file_namei=file_read(i).name;fid=fopen(file_namei,r);% 开始准备向从文件中读取数据k=1;while feof(fid) % 这儿用fgetl似乎也没有错temp=fgets(fid); length_temp_data(k)=length(str2num(temp);% 求长度temp_read_。

11、dataik=str2num(temp);% 写%k=k+1;end%-max_row=max(length_temp_data);% 求最大的长度,以确定补 nan 的个数%for j=1:k-1len=length(temp_read_dataij);if lenmax_rowtemp_read_dataij(len:max_row)=nan;endread_datai(j,:)=temp_read_dataij;end fclose(fid);endend本文来自CSDN博客,转载请标明出处:http:/blog.csdn.net/tianxiajianling/archive/2009/02/18/3905268.aspx。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值