フィルターのクリア

Make a plt from a 4-D multi array variable from nc file

2 ビュー (過去 30 日間)
Pepe Grillo
Pepe Grillo 2020 年 6 月 17 日
コメント済み: Pepe Grillo 2020 年 6 月 17 日
I have a nc file with:
Dimensions:
time = 8
depth = 48
latitude = 109
longitude = 25
and make this:
u='global-reanalysis-phy-001-030-daily_1591804259623.nc'
ncdisp(u)
east = ncread(u,'uo');
lat = ncread(u,'latitude');
lon = ncread(u,'longitude');
time=ncread(u, 'time');
depth=ncread(u, 'depth');
dtime = datetime(1950, 1, 1, time, 0, 0);
jd=juliandate(dtime);
plot(lat, east(:,:,15,1));
east is a 4-D 8371200 double
But I want a plot (surfc) in time, this 8 days, latitude, one depth (lets say 48, the last) and the east variable that is a velocity m/s.
Any idea? What I should do with east variable? squeeze, quiver, etc realy dont know or find solution
Thanks.
  1 件のコメント
KSSV
KSSV 2020 年 6 月 17 日
OP commented:
the plot(lat, east(:,:,15,1)) is working but only for one day if I change 1 for : then the error
Data cannot have more than 2 dimensions.

サインインしてコメントする。

採用された回答

KSSV
KSSV 2020 年 6 月 17 日
編集済み: KSSV 2020 年 6 月 17 日
ncfile = "global-reanalysis-phy-001-030-daily_1591804259623.nc";
time = ncread(ncfile,'time') ;
depth = ncread(ncfile,'depth') ;
lat = ncread(ncfile,'latitude') ;
lon = ncread(ncfile,'longitude') ;
u = ncread(ncfile,'uo') ;
% plots
for i = 1:length(time) % time loop
for j = 1:length(depth) % depth loop
z = u(:,:,j,i)' ; % extract the matrix here
pcolor(lon,lat,z) ;
colorbar
shading interp
xlabel('lon')
ylabel('lat')
title(sprintf('time = %d, depth = %d',i,j))
drawnow
end
end
  17 件のコメント
KSSV
KSSV 2020 年 6 月 17 日
You can try it your self......check the dimensions before and after squeeze.
squeeze : it will remove the unwanted extra dimensions
Pepe Grillo
Pepe Grillo 2020 年 6 月 17 日
yes! thanks a lot!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSurface and Mesh Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by