wang1234587
2013-04-07, 20:20
以下是我的代码,x、y、z,是我通过打开文件读进来的向量,xmin,xmax,ymin,ymax是x、y的最值,我想得到四幅子图,1二维等高线,2三维网状图,3三维曲面,4三维等高线
.......%此前代码省略,就是读入x、y、z,求出xmin,xmax,ymin,ymax
x1=linspace(xmin,xmax,200);
y1=linspace(ymin,ymax,200);
[X Y]=meshgrid(x1,y1);
Z=griddata(x,y,z,X,Y,'cubic');
subplot(2,2,1);
hold on
[c,h]=contour(X,Y,Z);
clabel(c,h);
title('二维曲线图');
xlabel('Y轴');
ylabel('X轴');
subplot(2,2,2);
hold on
mesh(X,Y,Z);
title('三维网状图');
xlabel('Y轴');
ylabel('X轴');
subplot(2,2,3);
hold on
surf(X,Y,Z);
title('三维曲面图');
xlabel('Y轴');
ylabel('X轴');
subplot(2,2,4);
hold on
[c,h]=contour3(X,Y,Z);
clabel(c,h);
title('三维等高线');
xlabel('Y轴');
ylabel('X轴');
我的问题是只有第一幅图是正确的,其余的本应是立体图的,怎么全是二维图啊,效果也不对?怎么回事?怎么解决?
.......%此前代码省略,就是读入x、y、z,求出xmin,xmax,ymin,ymax
x1=linspace(xmin,xmax,200);
y1=linspace(ymin,ymax,200);
[X Y]=meshgrid(x1,y1);
Z=griddata(x,y,z,X,Y,'cubic');
subplot(2,2,1);
hold on
[c,h]=contour(X,Y,Z);
clabel(c,h);
title('二维曲线图');
xlabel('Y轴');
ylabel('X轴');
subplot(2,2,2);
hold on
mesh(X,Y,Z);
title('三维网状图');
xlabel('Y轴');
ylabel('X轴');
subplot(2,2,3);
hold on
surf(X,Y,Z);
title('三维曲面图');
xlabel('Y轴');
ylabel('X轴');
subplot(2,2,4);
hold on
[c,h]=contour3(X,Y,Z);
clabel(c,h);
title('三维等高线');
xlabel('Y轴');
ylabel('X轴');
我的问题是只有第一幅图是正确的,其余的本应是立体图的,怎么全是二维图啊,效果也不对?怎么回事?怎么解决?