爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 15726|回复: 16

[源程序] matlab批处理文件---以excel为例

[复制链接]

新浪微博达人勋

发表于 2013-11-18 09:14:37 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
程序如下:
function data = readdata(directory)

file = dir(directory); % 获取文件夹directory中的所有文件名
n = length(file);
j = 1;
for i = 1:n
    point = strfind(file(i).name, '.');   % 寻找文件扩展名起始标志点'.'
    if ~strcmp(file(i).name(point:end), '.xlsx') % 如果当前文件不是文本文件,则跳过该文件
        continue;
    end
    dirname = [directory, '\', file(i).name]; % 将文件夹目录和文件名组集成当前文件的完整目录

    sheet = 1;
    station = xlsread(dirname,'A:A');
    year = xlsread(dirname,'I:I');
    pr95 = xlsread(dirname,'J:J');
    rday = xlsread(dirname,'K:K');
    maxp = xlsread(dirname,'L:L');
    yearp = xlsread(dirname,'M:M');
    p95r = xlsread(dirname,'N:N');   
    averp = xlsread(dirname,'O:O');
    meanp = xlsread(dirname,'P:P');

    yr78before = find(year>=2000 & year<=2012);

    stationbefore=station(yr78before)  
    yearbefore=year(yr78before)   
    pr95before=pr95(yr78before)
    rdaybefore=rday(yr78before)
    maxpbefore=maxp(yr78before)
    yearpbefore=yearp(yr78before)
    p95rbefore=p95r(yr78before)
    averpbefore=averp(yr78before)
    meanpbefore=meanp(yr78before)

%     yearbefore=[ones(length(yearbefore),1),yearbefore]
%     [B,Bint,E,Eint,Stats]=regress(pr95before,yearbefore)

    data{j, 1} = file(i).name; % 将文件名保存在元胞数组data的第1列
    data{j, 2} = mean(stationbefore)    % 将该的数据的第一列的平均值保存在元胞数组data的第2列
    data{j, 3} = std(pr95before)/mean(pr95before);   % 将该的数据的第二列的平均值保存在元胞数组data的第3列
    data{j, 4} = std(rdaybefore)/mean(rdaybefore);
    data{j, 5} = std(maxpbefore)/mean(maxpbefore);
    data{j, 6} = std(yearpbefore)/mean(yearpbefore);
    data{j, 7} = std(p95rbefore)/mean(p95rbefore);
    data{j, 8} = std(averpbefore)/mean(averpbefore);
    data{j, 9} = std(meanpbefore)/mean(meanpbefore);

    j = j+1;
end

dataforexcel = [{'文件名','站点','95%百分位数','降水日数','日最大降水','全年降水','p95r','averp','meanp'}; data]; % 加表头,便于阅读
xlswrite('data.xls', dataforexcel);  % 保存在Excel文件中



直接调用readdata函数即可。希望和大家一起探讨学习


评分

参与人数 3金钱 +28 贡献 +6 收起 理由
lk134 + 2 很给力!
斥鷃 + 12 + 2 很实用~
Aires + 14 + 4

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-18 10:34:05 | 显示全部楼层
好资料,学习了,谢谢版主
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-18 20:22:14 | 显示全部楼层
楼主好资料!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-7-3 23:58:16 | 显示全部楼层
                       
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-8-4 16:34:11 | 显示全部楼层
好资料,好好研习,谢谢版主。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-8-4 21:41:50 | 显示全部楼层
谢谢版主,学到很多
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-3-23 19:07:41 | 显示全部楼层
赞,很优秀!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-12-2 11:48:28 | 显示全部楼层
谢谢楼主分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-1-3 21:59:21 | 显示全部楼层
非常感谢楼主
分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-1-4 12:24:46 | 显示全部楼层
学习了,感谢楼主。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表