爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4979|回复: 3

[程序设计] MATLAB在EXCEL行循环的编制

[复制链接]

新浪微博达人勋

发表于 2014-5-10 16:31:38 | 显示全部楼层 |阅读模式

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

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

x
这是筛选出一站365天的数据计算编程结果能正常
[num]=xlsread('raindata.xls');
for i=1:365
    if num(i,5)==32700
        num(i,5)=0;
    else
    end
end
for i=1:365
    num(i,4)=i;
end
m=[];
for i =1:365
    if num(i,5)~=0
        m(i,:)=num(i,:);
    else
    end
end
n=[];
for i =1:354
    if m(i,5)>=50
        n(i,:)=m(i,:);
        for j=1:6
            if m(i-j,5)~=0
                n(i-j,:)=m(i-j,:);
            else

            end
            if m(i+j,5)~=0
                n(i+j,:)=m(i+j,:);
            else

            end
        end
    else
    end
end
for i=1:313
    if n(i,5)~=0 && n(i,5)<50 && n(i-1,5)==0 && n(i+1,5)==0
        n(i,:)=0;
    else
    end
end
data=[];
j=1;
for i=1:300
    if n(i,5)~=0
        data(j,:)=n(i,:);
        j=j+1;
    else
    end
end
fenji=[];
M=1;N=data(1,5);j=1;
for i=1:99
    if data(i+1,4)-data(i,4)==1
        M=M+1;N=N+data(i+1,5);
    else
        fenji(j,6)=M;
        fenji(j,5)=N;
        fenji(j,4)=num(j,4);
        fenji(j,3)=num(j,3);
        fenji(j,2)=num(j,2);
        fenji(j,1)=num(j,1);
        j=j+1
        M=1;N=data(i+1,5);
    end
end
下面是运算结果
56038        2001        1        7        94        1
56038        2001        1        8        255        6
56038        2001        1        9        263        5
56038        2001        1        10        42        2
56038        2001        1        11        436        5
56038        2001        1        12        291        4
56038        2001        1        13        105        1
56038        2001        1        14        69        1
56038        2001        1        15        174        3
56038        2001        1        16        544        14
56038        2001        1        17        92        2
56038        2001        1        18        177        5
56038        2001        1        19        11        2
56038        2001        1        20        47        4
56038        2001        1        21        77        3
56038        2001        1        22        130        7
56038        2001        1        23        193        4
56038        2001        1        24        179        10
但是如果读取一年全省站点EXCEL数据就无法正确运行,必须分段截取一个站365天的数据
如何套入一个循环连续读取该EXCEL文件的365行数据  即单站一站数据处理后连续输出。

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

新浪微博达人勋

 楼主| 发表于 2014-5-10 16:33:27 | 显示全部楼层
一个文件里有50多个站每年的统计。要计算40年的。如果不套循环就要运算2000多次。
但是如果套入循环   处理各EXCEL文件中单站一年数据后连续输出。就只需运算40次。工作量减少很多
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-5-11 10:42:54 | 显示全部楼层
建议使用txt读取
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2014-5-12 11:45:37 | 显示全部楼层
不知道excel文件什么样,建议上传看看……
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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