【问题标题】:3d plot with ksdensity in matlabmatlab中带有ksdensity的3d绘图
【发布时间】:2015-06-26 02:18:27
【问题描述】:

我在 matlab 中有一个问题。

我在 deltaX 的向量上使用了 ksdensity 函数,这是我计算的 X 减去实际的 X。 我在 deltaY 上也做了同样的事情。

然后我在该数据上使用了绘图。这给了我两个二维图。

因为我有两个图显示了我的系统在计算 X 和 Y 时的准确度(类似于高斯钟)。现在我想要一个情节,但在 3d 中。 代码是这样的:

    [f,xi] = ksdensity(deltaX);
            figure;
            plot(xi,f)

【问题讨论】:

  • 你可以尝试制作一个 mesh() 图。输入“帮助网格”
  • "mesh(x,y,Z) 和 mesh(x,y,Z,C),用两个向量参数替换前两个矩阵参数,必须有 length(x) = n 和 length (y) = m 其中 [m,n] = size(Z)。在这种情况下,网格线的顶点是三元组 (x(j), y(i), Z(i,j))。注意x 对应于 Z 的列,y 对应于行。”这似乎是我感兴趣的,虽然我对 Z 有意见。
  • @willpower2727 问题在于: ks 密度返回一对 [xi,f] 其中 f 只是对应于 x 概率密度函数值。所以我有 4 个 100 个元素和 0 个矩阵的向量。医生说我需要 Z 矩阵。我正在努力解决,但我们非常欢迎任何帮助!
  • @adam 请看我的回答,让我知道我还能提供什么帮助,老实说,我不确定在 3D 中可视化您的问题的数学正确方法。

标签: matlab math plot


【解决方案1】:

好的,我将要展示的内容可能不是可视化您的问题的正确方法,主要是因为我不太确定我是否理解您在做什么。但这将向您展示如何制作 Z 矩阵的示例,如您的问题的 cmets 中所讨论的那样。

代码如下:

x = wgn(1000,1,5);%create x and y variables, just noise
y = wgn(1000,1,10);
[f,xi] = ksdensity(x);%compute the ksdensity (no idea if this makes real-world sense)
[f2,xi2] = ksdensity(y);

%create the Z matrix by adding together the densities at each x,y pair
%I doubt this makes real-world sense
for z=1:length(xi)
for zz = 1:length(xi2)
        Z(z,zz) = f(z)+f2(zz);
    end
end

figure(1)
mesh(xi,xi2,Z)

结果如下:

我让您自己确定在 3D 中可视化密度函数的正确方法,这就是您制作 Z 矩阵的方法。简而言之,Z 矩阵包含每个 x,y 坐标处的绘图高程。希望这会有所帮助。

【讨论】:

  • 非常感谢!实际上我现在没有我的matlab,但我很快就会测试它。但是我在考虑这个解决方案的正确性,我认为它是正确的。起初我没有信心,但我重新思考,然后一次又一次,似乎这正是我需要绘制的:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-12
  • 2021-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多