用Matlab循环读文件,且读取每年同时段数据

当我们要画一些气候态的分布,以及画气候态距平的图时,往往要用到很多年的数据,而且还要做同时段的比较分析,所以在这分享一下我的方法。

cd('E:\dailysst');        %打开装多年数据文件的位置
Path = 'E:\dailysst';	% 设置文件路径
File=dir(fullfile(Path,'*.nc')); % dir函数读取nc文件名'name' 
Len=length(File);    %文件的数量
%%
%03年
sst03=[];%建立空数组
for i=1:Len
    year=1992+i;%年份
    sta=31+28+31+30+31+24;num=22;           %每年的同时段位置
    if mod(year,4)==0
        sta=sta+1;
    end                                   %当遇到闰年加1(二月多一天),二月之前的不用这部分
    f2=File(i).name;    % 拼接路径和文件名,并显示
    v=ncread(f2,'sst',[1,161,sta],[inf,400,num]);%读取该时段数据
    v=mean(v,3);%做平均 
    sst03=cat(3,sst03,v);%拼接多年数据
end
cd('D:\typhon span\SST');%打开画图程序所在位置,后面就可以运用上面得到的数据进行画图啦
t03_mean=mean(sst03,3);
ssta03=sst03(:,:,11)-t03_mean;
figure(1);
m_proj('mercator','longitudes',[0 360],'latitudes',[-50 50]);
m_coast('patch',[0.7451 0.7451 0.7451],'edgecolor','none');
m_grid;
hold on
m_plot(wx,wy,'k','linewidth',0.1);%绘制国界
hold on
m_contourf(lon,lat,ssta03');
colormap(slanCM(104));
caxis([-5,5]);
colorbar;
xlabel('经度','fontsize',12);
ylabel('纬度','fontsize',12);
title('03年ssta分布图','fontsize',12);
saveas(gca,'03年ssta分布图.jpg');

仅供参考,如有更好的方法请赐教。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿翔_ocean

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值