爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6305|回复: 6

[程序设计] 一列数据n个,每隔m个 提取一个序列t1,怎么实现

[复制链接]

新浪微博达人勋

发表于 2013-1-25 15:21:47 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 爱的侍者 于 2013-1-25 15:26 编辑

一列数据n个,每隔m个 提取一个序列t1,怎么实现

y1=data2(:,1);
for i=1:144
    for j=(1+600i):600i
        y2=std(y1);
    end
end

这样咋不行


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

新浪微博达人勋

 楼主| 发表于 2013-1-25 16:35:59 | 显示全部楼层
已经实现,但是用循环怎么写呢?。。。。虽然matlab不适合用循环 好吧!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-1-25 21:01:35 | 显示全部楼层
y1=data2(:,1);
for i=1:144
     for j=(1+600i):600i
         y2=std(y1);
     end
end
这程序是什么意思呢?每次循环得到的y2是一样的啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-1-25 22:12:54 | 显示全部楼层
不用for循环。直接用冒号表达式即可。例如:A=1:m:n
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-1-26 02:19:34 | 显示全部楼层
连续取数

for i = 0:1:M/365,
    k=1 %提取一月份
    b(i*30+1:i*30+30,1) = precip54406(i*365+k*1:i*365+k*30,1);
end;
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-1-27 08:50:16 | 显示全部楼层


这个写错了,确实不变~
一共144 个 序列长度为600的子序列,第一个子序列
i=1,选取第1:600个数计算标准差,以此类推~
z1=data1(:,1);
z2=reshape(x1,600,144);
搞定了!

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

新浪微博达人勋

发表于 2013-3-25 20:36:57 | 显示全部楼层
reshape()
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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