爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7221|回复: 13

[程序设计] 如何读取.mat文件中特定经纬度范围内的sst数据

[复制链接]

新浪微博达人勋

发表于 2017-11-27 11:54:37 | 显示全部楼层 |阅读模式

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

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

x
我有一个.mat文件,里面有sst, lon, lat这三个变量数据,我想读取出0-50N, 100-150N区域范围内的sst数据,并且将读取出的数据重新保存为还是这三个参数的.mat数据。
新人求教,非常感谢。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2017-11-27 13:42:22 | 显示全部楼层
load
save
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-11-27 14:02:56 | 显示全部楼层
load
save     
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-11-27 15:45:20 | 显示全部楼层

我就是用的load,save
可是我只会提取经纬度数值,没提出来来经纬度对应的sst
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-11-27 15:46:02 | 显示全部楼层

我再研究研究,谢谢。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-11-27 17:38:31 | 显示全部楼层
我有点笨,我感觉实在不行的话,就新建个变量,然后if 经纬度 then SSt赋给新变量。
你看呢?但是确实有点笨啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-11-27 18:20:48 | 显示全部楼层
哎,我这个菜鸟
sst和qual_qual 是个8192*4096的矩阵,lon和lat 分别是8192*1 和4096*1的向量。
琢磨了一下午,写了个下面的代码。
生成的lon_new和lat_new 分别是:1137*1和1138*1 的向量。生成的sst_new是:129306*1的向量
现在还在琢磨怎么把sst_new 生成为 1137*1138的矩阵??


    load (sstfilename, 'sst', 'qual_qual', 'lon', 'lat');
    lon_new = find(lon>100 & lon<150);
    lat_new = find(lat >0 & lat <50);
    [X, Y]=meshgrid(lon,lat);
    sst_new = sst( X>100 & X<150 & Y >0 & Y <50);
    qual_qual_new = qual_qual( X>100 & X<150 & Y >0 & Y <50);
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-11-27 18:21:49 | 显示全部楼层
sunzy025 发表于 2017-11-27 17:38
我有点笨,我感觉实在不行的话,就新建个变量,然后if 经纬度 then SSt赋给新变量。
你看呢?但是确实有点 ...

哎,我这个菜鸟
sst和qual_qual 是个8192*4096的矩阵,lon和lat 分别是8192*1 和4096*1的向量。
琢磨了一下午,写了个下面的代码。
生成的lon_new和lat_new 分别是:1137*1和1138*1 的向量。生成的sst_new是:129306*1的向量
现在还在琢磨怎么把sst_new 生成为 1137*1138的矩阵??


    load (sstfilename, 'sst', 'qual_qual', 'lon', 'lat');
    lon_new = find(lon>100 & lon<150);
    lat_new = find(lat >0 & lat <50);
    [X, Y]=meshgrid(lon,lat);
    sst_new = sst( X>100 & X<150 & Y >0 & Y <50);
    qual_qual_new = qual_qual( X>100 & X<150 & Y >0 & Y <50);
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-11-27 18:30:25 | 显示全部楼层
Black_kiki 发表于 2017-11-27 18:21
哎,我这个菜鸟
sst和qual_qual 是个8192*4096的矩阵,lon和lat 分别是8192*1 和4096*1的向量。
琢磨了 ...

不知用reshape对还是用for循环对
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-11-27 18:36:56 | 显示全部楼层
Black_kiki 发表于 2017-11-27 18:21
哎,我这个菜鸟
sst和qual_qual 是个8192*4096的矩阵,lon和lat 分别是8192*1 和4096*1的向量。
琢磨了 ...

和你讲个超笨的办法,特别慢
[m,n]=size(sst);
for i=1:m
   for j=1:n
      if lon(j)>100 & lon(j)<150 & lat(i) >0 & lat(i)<50
           x=x+1;y=y+1
          new_sst(x,y)=sst(i,j);
      end
   end
end



什么i,j,m,n啥的,你看看是不是反了,我感觉差不多能出来
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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