matlab中如何画横纵坐标不一样的三维图?

大家好,怎么样才能画出类似于上面这个图的三维图呢,我的x,y坐标都是不一样的,x轴是百分比10%—90%,y轴的取值是0,0.2,0.4,0.6,0.8,然后z坐标是对应的取值,也就是说每个x,y对应一个z值,如下表所示,z轴对应的是矩阵里面的值,不知道该怎么画,谢谢大家指点!!
我的程序如下:但是不知道哪里出问题了,出不来我想要的图。
x=(10:10:90);
y=(0:0.2:0.8);
z=xlsread('resultL3.xls','(四)U(Rt)', 'B3:J7');%矩阵中的数据
[xx yy]=meshgrid(linspace(min(x),max(x),50),linspace(min(y),max(y),50));
zz=interp2(x,y,z,xx,yy);
C=(zz(1:end-1,:)+zz(2:end,:))/2;
C=(C(:,1:end-1)+C(:,2:end))/2;
surfc(xx,yy,zz,C);
set(gca,'XTick',10:10:90,'YTick',0:0.2:0.8,'ZTick',0:0.2:1);
axis([10 90 0 0.8]);

给你举个例子吧,仿照下面把你的数据补充完整就可以了


x = [0.1, 0.2, 0.3, 0.4];

y = [0, 0.2, 0.4];

z = [0.3543, 0.3487, 0.3361, 0.3152;

      0.3497, 0.3318, 0.3107, 0.3092;

      0.3342, 0.3088, 0.2895, 0.2767  ];


surf(x,y,z);

set(gca,'XTick',x);

set(gca,'XTickLabel',{'10%', '20%', '30%', '40%'}); 

set(gca,'YTick',y);


结果如下图:


请采纳

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-06
clear
clc
close all
% 基本数据
x0=10:10:90;% length(x0)=n
y0=0:0.2:0.8;% length(y0)=m
z=rand(length(y0),length(x0));% size(z)满足m×n(数据我是随便设置的,你改成你的数据即可)
% 绘图
meshc(x0,y0,z)% meshc是函数mesh和contour的组合
% 设置坐标轴
xlabel('Values of \theta','Fontsize',14,...
'FontName','times new roman','Position',[40 -0.2 0])
ylabel('Values of \mu','Fontsize',14,'FontName',...
'times new roman','Position',[-15 0.5 0])
set(gca,'Fontsize',12,'FontName','times new roman')
第2个回答  2014-12-06
x=[0.1;0.2;...0.9];
y=[0;0.2;0.4;0.6;0.8];
然后你再把每个xy对应的值写成一个矩阵z,再用surf函数就ok了

我这个电脑上没有MATLAB,不能验证,不过肯定这个方法是可以的,你试试吧
相似回答