2016-12-26 48 views
2

我已经生成了一个类似于高斯分布的3D图,其具有随机变量Y,X1和X2(1000x1)矢量。 Y在垂直轴上,X1和X2是水平的。3个变量的高斯轮廓图-MATLAB

具体来说,这是我用过的情节代码:

plot3(x(:,1),x(:,2),y,'.') 

已创建的图有以下形式:

3D - Gaussian

我也想生产的东西像这样:

Contour - Gaussian

但是,当我使用此代码:

contour(x(:,1),x(:,2),y); 

我收到消息:

使用轮廓误差(线48) Z应该在至少一个2×2矩阵。

我真的没有得到如何解决这个问题,我假设Z是Y,但我不明白为什么它至少要2x2。总之,任何帮助将不胜感激。

回答

0

您不能在分散的数据上创建轮廓,您需要一个网格。是可能的内插对NxN样品中的XY域中的网格中的数据,使用griddata(这里所访问[-2,2]x[-2,2]为例):上如何进行内插散射数据here

N = 200; 
xi = linspace(-2, 2, N); 
yi = linspace(-2, 2, N); 
[XI, YI] = meshgrid(xi, yi); 
ZI = griddata(x(:,1), x(:,2), y, XI, YI, 'v4'); 
contour(XI,YI,ZI); 

更多信息。