MATLAB Answers

0

The size of X must match the size of Z or the number of columns of Z.

Asked by Jonas Damsbo on 10 Oct 2018
Latest activity Commented on by Jonas Damsbo on 10 Oct 2018
Hi there
I have a netcdf file I have running in MatLab. But I want to plot contour lines for the geostrophic wind. When I running my code i got the fail "The size of X must match the size of Z or the number of columns of Z." Someone there could help me?
if true
figure(2);
clow=4680; chigh=6000; cint=60;
conts = [clow:cint:chigh];
V = [clow:cint*2:chigh];
[c,h]=contour(lat,lon,z,conts,'linewidth',1.5,'color','k');
clabel(c,h,V);
quiver(latv,lonv,vg500,ug500)
title('Geopotential height and geostrophic wind at 500 hPa')
xlabel('longitude'), ylabel('latitude')
figure(3)
clow=4680; chigh=6000; cint=60;
conts = [clow:cint:chigh];
V = [clow:cint*2:chigh];
[c,h]=contour(lat,lon,z,conts,'linewidth',1,'color','k');
clabel(c,h,V);
pcolor(latv,lonv,Vg);
shading interp
colorbar('v');
title('geopotential height and magnitude of geostrophic wind at 500 hPa')
xlabel('longitude'), ylabel('latitude')
end

  3 Comments

Which line is producing the error? What are the sizes of each of the variables mentioned on that line?
It is common to confuse x and y on a matrix. X corresponds to columns not rows.
It's line
[c,h]=contour(lat,lon,z,conts,'linewidth',1.5,'color','k');
The sizes are:
lat = 9865 x 1
lon = 360 x 1
z = 360 x 181
conts = 1 x 23
Your lat variable is about 54 times too large. It would have to be 181 long for that z data.

Sign in to comment.

1 Answer

Answer by ANKUR KUMAR on 10 Oct 2018
Edited by ANKUR KUMAR on 10 Oct 2018
 Accepted Answer

There are few mistakes I want to highlight. You have used,
contour(lat,lon,z.............
It should be
contour(lon,lat,z................
Moreover make sure that the third argument must be in the dimension of second input X dimension of first input.
Have a look over this example
contour([1:10],[1:15],rand(10,15))
You will get an error
Error using contour (line 48)
The size of X must match the size of Z or
the number of columns of Z.
It should be
contour([1:10],[1:15],rand(10,15)')
Always put lon as the first input and dimension of third should be second X first.

  1 Comment

Sign in to comment.