how to make a spatial map with two dimensional matrix

11 ビュー (過去 30 日間)
Joydeb Saha
Joydeb Saha 2021 年 9 月 1 日
回答済み: KSSV 2021 年 9 月 1 日
I have a matrix SH=721X1440
I want to make a spatial map with that. lat=721x1 , lon=1440x1, time = 1044624. I attached lat matrix as lat1 and lon matrix as lon1.
index=find((lon1>180));
new_lon=lon1(index,1)-360;
new_lon1=([new_lon;lon1(1:721)]);
% for l=1:12
% disp(l)
l=1;
flayer=SH(l,:,:);
reshape_one=reshape(SH(l,:,:),[721 1440]);
[LON,LAT] = meshgrid(new_lon1,lat1);
shift_sh=circshift(reshape_one,720,2);
figure1 = figure;
load coast;
axes1 = axes('Parent',figure1,'FontSize',14,'DataAspectRatio',[1 1 1]);
box(axes1,'on');
grid(axes1,'on');
axes1.GridColor = [0, 0, 0];
xlabel(['Longitude (',char(176),')'],'FontSize',18,'FontName','Arial','FontWeight','bold');
ylabel(['Latitude (',char(176),')'],'FontSize',18,'FontName','Arial','FontWeight','bold');
set(gca,'XLim',[-180 180]);
set(gca,'YLim',[-90 90]);
set(gca,'XTick',-180:30:180);
set(gca,'YTick',-90:30:90);
hold on
xlim([-180 180]);
ylim([-90 90]);
h=pcolor(LON,LAT,shift_sh);
h.EdgeColor='none';
hold on
colormap jet
hold on
h1=geoshow(lat, long, 'color', 'black','linewidth', 2);
% colorbar;
c=colorbar;

回答 (1 件)

KSSV
KSSV 2021 年 9 月 1 日
Let X, Y, Z be your data. Where X is m*n, Y is m*n and Z is m*n*p matrix.
for i = 1:p
pcolor(X,Y,Z(:,:,i))
drawnow
end
To plot a time series at a point (i,j)
plot(squeeze(Z(i,j))) ;
Also have a look on slice.

カテゴリ

Help Center および File ExchangeScatter Plots についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by