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

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 日

2 投票

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 件のコメント

Pepe Grillo
Pepe Grillo 2020 年 6 月 17 日
Thanks for you answer, I try but this came:
>> surf(lon,lat,east(:,:,1))
Error using surf (line 74)
Data dimensions must agree.
>> pcolor(lon,lat,east(:,:,2))
Error using pcolor (line 59)
Matrix dimensions must agree.
I make the squeeze .
Any idea?
KSSV
KSSV 2020 年 6 月 17 日
try transposing the matrix..
surf(lon,lat,east(:,:,1)')
If not working share the dimensions of each variable here..
Pepe Grillo
Pepe Grillo 2020 年 6 月 17 日
Thanks!
Here is the file
What i want is a plot in 2D
x=time
y=latitude
z=east
at specific depth.
KSSV
KSSV 2020 年 6 月 17 日
Edited the answer.
Pepe Grillo
Pepe Grillo 2020 年 6 月 17 日
ok! I try it runs with out error but the plot is empty.
Pepe Grillo
Pepe Grillo 2020 年 6 月 17 日
the z matrix is NaN
KSSV
KSSV 2020 年 6 月 17 日
All the matrices are not NaN....when depth is increasing....data is having NaN's....see the plot, it is in a loop..it is plotting all the values..
Pepe Grillo
Pepe Grillo 2020 年 6 月 17 日
I add this to your answer:
nx = length(lon);
ny = length(lat);
nd=length(depth);
nt=length(time);
that I saw you make in other question and works but is like running the time and depths like animation
but still the cordinates are lat and long
KSSV
KSSV 2020 年 6 月 17 日
Okay..I got it..you want to plot for specific depth, all the time data...
For this case, you need to fix the range of lat and lon...
Pepe Grillo
Pepe Grillo 2020 年 6 月 17 日
ok! yes I understand so how can I make the plot time vs lat with u as 3 variable
KSSV
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(lon)
ud = squeeze(u(:,i,1,:)) ;
pcolor(lon,time,ud')
shading interp ;
colorbar
title(sprintf("depth = 1, lat rows = %d",i)) ;
drawnow
pause
end
KSSV
KSSV 2020 年 6 月 17 日
This is called Hovmoller diagrams ..am I right?
Pepe Grillo
Pepe Grillo 2020 年 6 月 17 日
Pepe Grillo
Pepe Grillo 2020 年 6 月 17 日
ok! thanks I think I can change to axe x time and to y latitude
great!
Pepe Grillo
Pepe Grillo 2020 年 6 月 17 日
Yes Hovmoller! I just start with this this week and try with few data now came the big things...
so what is doing: ud = squeeze(u(:,i,1,:))
thanks!
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 件)

カテゴリ

ヘルプ センター および File ExchangeGraphics Object Properties についてさらに検索

質問済み:

2020 年 6 月 17 日

コメント済み:

2020 年 6 月 17 日

Community Treasure Hunt

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

Start Hunting!

Translated by