【问题标题】:Special functions in MatlabMatlab 中的特殊函数
【发布时间】:2010-05-07 13:45:06
【问题描述】:

我正在尝试获取如下图片:

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 会正确切换吗?

【问题讨论】:

  • surf 行的括号不匹配,所以我不确定您要做什么。

标签: matlab


【解决方案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');

【讨论】:

    猜你喜欢
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 2019-11-11
    • 1970-01-01
    • 2011-03-17
    • 2014-01-08
    • 1970-01-01
    相关资源
    最近更新 更多