我正试图得到如下图片:
http://upload.wikimedia.org/wikipedia/en/e/e6/Airy-3d.svg
我做错了什么?
[x,y]=meshgrid(-1:.1:1,-1:.1:1);
surf(x,y,(2*besselj(1,2*pi*sqrt(x.^2+ y.^2)/sqrt(x.^2+ y.^2)).^2)
另外......有点注意,但是如果我在这里使用ndgrid而不是meshgrid我的x和y会切换到右边吗?
答案 0 :(得分:1)
以下是我认为方程式错误的几个方面:
sqrt(x.^2+y.^2)
之后?在等式中,看起来你正在将sqrt(x.^2+y.^2)
除以它自己,这可能不是你想要做的,这就是为什么我认为你错过了那里的括号。./
而不是使用/
进行矩阵右分割来执行逐元素划分(有关更多详细信息,请参阅this link)。此外,您需要将曲面对象的'FaceColor'
property更改为'none'
,以便仅显示网格边缘:
[x,y] = meshgrid(-1:.1:1,-1:.1:1);
z = ... %# Compute your z in some way
surf(x,y,z,'FaceColor','none');