24小时热门版块排行榜    

查看: 2335  |  回复: 2

lilianpink

铁虫 (初入文坛)

[求助] matlab:如何将批量处理的txt逐个调用处理?文件名不会设置循环读取?输出部分行内容

matla新手,把我自学能搞定的部分已经写出来了,跪求高手改正、指点……
会批量导入文件,导入之后不会算了
————————————————————
cd('h:\data')%待处理的数据文件所在文件夹
filename=dir('h:\data\*.wth');
h=length(filename);%文件数量
———————————————
%1、导入之后怎么调用数据计算?
for ii = Data(:,:,ii) = textread(filename{ii},%f%f%f%f%f,'headerlines',6));
%%每个文件有6列文字说明的表头,去掉后是365*5或者366*5的数据矩阵
——————————————
%2、每个文件的算法相同,名字怎样设置可以依次调用,还是经过上面导入全部算就可以了?

文件名字格式:分三部分ABC。A:1-3854;
                           B:61,62,…99,01,02,03…10(就是1961-2010,只取后两位);
                           C:全部01.(0001+61+01)
00016101.wth
00016201.wth
00016301.wth



00019901.wth



00011001.wth
均为0001**01,   **的变化为1961-2010只取后两位数字:61:10.,
前四个数字为0001-3854,后四个数字为6101-1001不断循环
所以总数据量为3854*50=192900
00026101.wth

00021001.wth



38546101.wth

38541001.wth
这样的文件名可以循环吧,起码可以50个一组循环b吧?我还是没弄明白matlab里面可以怎么表示
——————————————————————————
单个文件:
[d,s,tmax,tmin,p]=textread('filemane{jj}',%f%f%f%f%f,'headerlines',6);
%每个文件有6列文字说明的表头,去掉后是365*5或者366*5的数据矩阵
————————————————————————————————
%3、会单个的,怎么处理全部文件?
[d,s,tmax,tmin,p]=textread('?',%f%f%f%f%f,'headerlines',6);
if    size(d)=[365,1]
    maxt4=mean(91:120,3);mint4=mean(91:120,4);%4月
    maxt5=mean(121:151,3);mint5=mean(121:151,4);%5月
    maxt6=mean(151:181,3);mint6=mean(151:181,4);%6月
    maxt7=mean(182:212,3);mint7=mean(182:212,4);%7月
    maxt8=mean(213:243,3);mint8=mean(213:243,4);%8月
    maxt9=mean(244:273,3);mint9=mean(244:273,4);%9月
   
  else size(d)=[366,1]   
    maxt4=mean(92:121,3);mint4=mean(92:121,4);
    maxt5=mean(122:152,3);mint5=mean(122:152,4);
    maxt6=mean(152:182,3);mint6=mean(152:182,4);
    maxt7=mean(183:213,3);mint7=mean(183:213,4);
    maxt8=mean(214:244,3);mint8=mean(214:244,4);
    maxt9=mean(245:274,3);mint9=mean(245:274,4);
%4、如何输出第一行和第四行文本内容disp('1,4')?
(maxt4,,mint4;
maxt5,mint5;
maxt6,mint6;
maxt7,mint7;
maxt8,mint8;
maxt9,mint9);
end
回复此楼
今天的状态取决于你三年之前的选择
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

感谢参与,应助指数 +1
xzhdty: 谢谢骠骑将军 2013-02-01 22:54:37
循环读取指定文件夹下的txt文件,并显示文件名,你只需要将你处理部分代码加入就行了
CODE:
a = dir('E:\');
for i=1:size(a)
    if a(i).isdir==0 && strcmp(a(i).name(end-3:end),'.txt')
        disp(a(i).name);
        % other operation
    end
end

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2013-02-01 22:01:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lilianpink

铁虫 (初入文坛)

引用回帖:
2楼: Originally posted by libralibra at 2013-02-01 22:01:29
循环读取指定文件夹下的txt文件,并显示文件名,你只需要将你处理部分代码加入就行了
a = dir('E:\');
for i=1:size(a)
    if a(i).isdir==0 && strcmp(a(i).name(end-3:end),'.txt')
        disp(a(i ...

第三列就是name,不需要做更改吗?还是有点问题,结果只输出0,我加你qq了,给解释下意思吧,不胜感激
今天的状态取决于你三年之前的选择
3楼2013-02-02 13:52:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lilianpink 的主题更新
信息提示
请填处理意见