matlab中等高线contour的问题

x=rand(1,10);
y=rand(1,10);
z=rand(1,10); %我这里用随机数了,你的用读取到的数据代替。

%要把离散数据网格化,因为contour,surface和mesh接受的都是网格化数据。
xi=linspace(min(x),max(x),50); %从最小到最大之间取若干点,我用了50个,你可以随意改。
yi=linspace(min(y),max(y),50);
[xi,yi]=meshgrid(xi,yi); %网格化x,y
zi=griddata(x,y,z,xi,yi,'cubic'); % 网格化z,实际上就是二维插值,可以用'linear'有棱角的,'cubic'就比较平滑。

subplot(1,2,1)
contour(xi,yi,zi) %如果不需要比较立体图,那就不需要subplot了,直接contour
colorbar

subplot(1,2,2)
mesh(xi,yi,zi) % 立体效果图,用surf也可以。