注册 登录
编程论坛 Matlab

[求助]绞尽脑汁不得解的有关画3D surface的问题!

Difan 发布于 2006-07-22 01:36, 826 次点击

我用的是matlab 7.1 Neural Network toolbox. 我有两个变量x y:

x=[-250:2.5:0]; 1*101 vector

y=[0:0.01:1]; 1*101 vector

然后有一个z

z= @(x,y)[1 0 0]*poststd(sim(neta,trastd([x ; y],meanp,stdp)),meant,stdt) 也是一个1*101 vector

(这里x y虽然是两个变量,但是对于我的neural network它们必须是以[x ; y](2*101)形式输入的。每一列的x y对应一个z。我想这个可能是问题)

做图的方法应该都一样,用Z = griddata(x,y,z,X,Y); mesh(X,Y,Z)然后不成功!

我也试了[X,Y,Z]=meshgrid(x,y,z);之类的,也没有用。错误提示都是x y z之间size不统一。ezsurf(z)倒是能用,但是由于不能指定范围和分辨率,结果不理想。

请问高手这种问题怎么解决呢?先谢过啦!

1 回复
#2
ydgsl2006-09-21 06:50
[X,Y,Z]这是3列的数据,只能画点(3维散点图),要想画曲面,需用下列语句:
[x1,y1]meshgrid(Xl:ix:Xh,Yl:iy:Yh];Xl,ix,Xh分别为X的低限、间距和高限。
z1=fun(x1,y1);%fun是求算Z的函数,此时x1, y1 和 z1均是一个矩阵,这时才能画出网格曲面(mesh)或曲面(surf)。
mesh(x1,y1,z1);
surf(x1,y1,z1);
shading interp
alpha(.7)
1