- 积分
- 153
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2024-3-22
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
各位大佬们晚上好,我是一个学习matlab的新手小白。在画CDD时出的图是这样的,我找不到问题,有人能帮我看看吗?感恩♥附上我的代码:
clc;
clear;
datadir = '\\wsl.localhost\Ubuntu-22.04\home\afei\1_in\pre\';
filelist = dir([datadir,'*.nc']);
k=length(filelist);
for a = 1:1 %依次读取并处理
%% 批量读取NC文件
ncFilePath = ['\\wsl.localhost\Ubuntu-22.04\home\afei\1_in\pre\',filelist(a).name]; %设定NC路径
num = filelist(a).name(1:20); %读取数据编号,以便于保存时以此编号储存tif
%% 读取变量值
Lon=ncread(ncFilePath,'lon'); %读取经度信息(范围、精度)
Lat=ncread(ncFilePath,'lat'); %读取纬度信息
time=ncread(ncFilePath,'time'); %读取时间序列
pr=ncread(ncFilePath,'pr'); %获取降雨变量数据
pre = pr*3600*24;
%1986-1987年干季
days = zeros(1440,600,365);
for i = 1:1440
for j = 1:600
X = squeeze(pre(i,j,:));%X为一维
days(i,j)=find_max_dryday(X);
end
end
days(days==0) = nan;
CDD1986_1987dry=days;
%1986年
ydays=zeros(1440,600);
for i = 1:1440
disp(i)
for j = 1:600
ydays(i,j)=max(CDD1986_1987dry(i,j,:));
end
end
max86CDD=ydays;
end
[x,y]=meshgrid(-179.875:0.25:179.875,89.875:-0.25:-59.875);
sz=[600 1440];
max86CDD = reshape(max86CDD,sz);
scrsz = get(0,'ScreenSize')
figure('Position',[1 1 scrsz(3) scrsz(4)]);
contourf(x,y,max86CDD,100);
shading flat
load coast
hold on
plot(long,lat,'-k','Linewidth',1);
hold off
colorbar('SouthOutside','Position',[0.2,0.1,0.6,0.04]) %左端位置 下端位置 右端位置 宽度
set(gca,'LineWidth',2,'FontSize',12,'Ylim',[-60 90],'Xlim',[-180 180],'clim',[0 150],'Position',[0.2 0.2 0.6 0.7]...
,'Xtick',[-180:60:180],'Xticklabel',{'-180W','-120W','-60W','0','60E','120E','180E'}...
,'Ytick',[-60:30:90],'Yticklabel',{'-90S','-60S','-30S','0','30N','60N','90N'});
|
|