知道N层海水各格点的温度,怎么绘制温度延某一条经线或纬线的变化呢?
代码
自定义函数
function profilelon2(t,k,svel,Lon,Lat,level,time,name)
%k是指定绘制经度线在lon中的序号,例如k=[123,124,125];
%t是时刻序号
%svel待绘制的水文要素矩阵
%Lon是经度网格
%Lat是纬度网格
%leve是深度
%time是svel的全部时间点
%name是所绘制水文要素的名称
for i=1:length(k)
j=k(i);
m=svel(j,:,:,t);
[year1,month1,day1,hour1]=transtime(time);
name1=strcat(num2str(year1(t)),'年',num2str(month1(t)),'月',num2str(day1(t)),'日',num2str(hour1(t)),'时',num2str(Lon(j)),'度经线',name,'剖面');
tm=reshape(m,301,33);
absve=tm;
absve=flipud(absve);m=fliplr(absve');
[x1,y1]=meshgrid(Lat(1:1:end),level(1:1:end));
figure;
contourf(x1,y1,m,11,'ShowText','on');
xlabel('纬度')
ylabel('Depth(m)')
set(gca,'YDir','reverse')
title(name1);
name2=strcat(name1,'.png');
saveas(gcf,name2);
end
end
主函数调用
time=ncread("D:\新建文件夹\新建文件夹\uv_16-233.nc",'time');
U=ncread("D:\新建文件夹\新建文件夹\uv_16-233.nc",'uo');
V=ncread("D:\新建文件夹\新建文件夹\uv_16-233.nc",'vo');
lon=ncread("D:\新建文件夹\新建文件夹\uv_16-233.nc",'longitude');%经度
lato=ncread("D:\新建文件夹\新建文件夹\uv_16-233.nc",'latitude');%纬度
h=ncread("D:\新建文件夹\新建文件夹\uv_16-233.nc",'depth');
%绘制沿经线剖面
t=25;
k=[145,157,169];
profilelon2(t,k,V,lon,lato,h,time,'流速');
%绘制经纬线剖面
k=[85,91];
for t=1:3:length(time)
profilelat2(t,k,U,lon,lato,h,time,'流速');
end
效果展示
变量详情