24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2741  |  回复: 9

jiasen1980

金虫 (正式写手)


[交流] 【讨论】求助Matlab批量读取和处理一个文件夹里的txt文件

现在有一个文件夹 里面有800个的txt文件 文件的名字按照数字顺序从1到800 每个TXT文件内容 共三列数字 每列1000行
,以逗号分隔,我只需要第三列有用数字

现在我想写一个.M文件 批量读取和处理这个文件夹里的txt文件
我是新手,时间又紧,那位虫子帮一下  
送100金币
回复此楼

» 收录本帖的淘帖专辑推荐

MATLAB相关

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
jiasen1980(金币+40): 2011-03-09 10:55:47
jiasen1980(金币+10): 2011-03-09 11:26:39
引用回帖:
Originally posted by jiasen1980 at 2011-03-09 02:02:08:
现在有一个文件夹 里面有800个的txt文件 文件的名字按照数字顺序从1到800 每个TXT文件内容 共三列数字 每列1000行
,以逗号分隔,我只需要第三列有用数字

现在我想写一个.M文件 批量读取和处理这个文件夹里的 ...

纯数据txt文件,直接load就可以了。

写了个简单的例子,先写了8个文件,每个文件中存取1000*3的随机数。
然后读取这8个文件,将每个文件中的第三列存到矩阵A中。
CODE:
function batchWriteReadTxt

% 文件数
TxtFileNum = 8;

% 写数据文件
for i = 1 : TxtFileNum
        % 构造文件名字符串
        FileName = sprintf( '%s.txt', num2str( i ) );
        % 以写方式创建文件
        fid = fopen( FileName, 'w' );
        % 如果创建文件成功
        if fid > 0
                % 生成随机数
                A = rand( 1000, 3 );        % 1000行,3列
                % 写数据
                fprintf( fid, '%10.4f, %10.4f, %10.4f\r\n', A );
                % 关闭文件
                fclose( fid );
        end
end

% 初始化数据,将每个文件中的第三列存为1列,1000行
A = zeros( 1000, TxtFileNum );
% 读文件
for i = 1 : TxtFileNum
        % 构造文件名字符串
        FileName = sprintf( '%s.txt', num2str( i ) );
        % 纯数据文件,直接load就可以
        data = load( FileName );
        A( :, i ) = data( :, 3 );       
end

3楼2011-03-09 09:30:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hhucy

实习版主 (著名写手)


★ ★
xiegangmai(金币+2): 鼓励讨论交流! 2011-03-09 09:55:35
jiasen1980(金币+40): 2011-03-09 10:56:07
楼上正解
顺便补充一下如何直接load
1.        load
a=load ('x.dat')%读取 *.dat文件;
a=load ('x.txt')%读取 *.txt文件;
2.        importdata
importdata(‘filename’,’delimiter’)
delimiter:是分割符
3.        csvread
通常用来读取逗号分开的数据文件
X=csvread(‘filename’,row,clo,range)
4.        demread
比较通用吧,可以读任何任何其它字符分割的的数据。
Eg:
原来的数据x.txt
a=dlmread('x.txt')

[ Last edited by hhucy on 2011-3-9 at 09:34 ]
4楼2011-03-09 09:31:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

justyet

金虫 (著名写手)


jiasen1980(金币+8): 2011-04-01 22:43:24
楼主问的是 “批量读取和处理一个文件夹里的txt文件 ”

namelist  = dir('*.txt');
然后看一下namelist 的长度,就知道有几个文本文件了,再然后就是通常的那些load,矩阵操作之类的。
6楼2011-04-01 17:52:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qimiao

铁虫 (小有名气)


不错,很好
7楼2012-12-20 02:11:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yueyue_2013

金虫 (小有名气)



小木虫: 金币+0.5, 给个红包,谢谢回帖
我也补充一点点
1.        load
a=load ('x.dat')%读取 *.dat文件;
a=load ('x.txt')%读取 *.txt文件;
2.        importdata
importdata(‘filename’,’delimiter’)
delimiter:是分割符
3.        csvread
通常用来读取逗号分开的数据文件
X=csvread(‘filename’,row,clo,range)
4.        demread
比较通用吧,可以读任何任何其它字符分割的的数据。
Eg:
原来的数据x.txt
a=dlmread('x.txt')
8楼2014-01-14 09:06:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lifuqing303

新虫 (初入文坛)


9楼2016-03-28 16:20:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sky1158

新虫 (初入文坛)



小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
3楼: Originally posted by xiegangmai at 2011-03-09 09:30:35
纯数据txt文件,直接load就可以了。

写了个简单的例子,先写了8个文件,每个文件中存取1000*3的随机数。
然后读取这8个文件,将每个文件中的第三列存到矩阵A中。

function batchWriteReadTxt

% 文件数
...

怎么桉顺序读取text文档
10楼2018-01-13 15:24:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
简单回复
zyxme2楼
2011-03-09 03:16   回复  
xiegangmai: 请勿在求助帖发无意义纯表。 2011-03-09 09:28:49
jiasen1980(金币+1): 哦 这么没注意 不好意思啊 2011-03-09 10:55:17
2011-03-10 22:33   回复  
引用回帖:
Originally posted by jiasen1980 at 2011-03-09 02:02:08: 现在有一个文件夹 里面有800个的txt文件 文件的名字按照数字顺序从1到800 每个TXT文件内容 共三列数字 每列1000行 ,以逗号分隔,我只需要第三列有用数字 现在我想写一个.M文件 批量读取和处理这个文件夹里的 ...

相关版块跳转 我要订阅楼主 jiasen1980 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见