3个变量的高斯等高线图 - MATLAB

时间:2016-12-26 23:23:29

标签: matlab plot contour gaussian

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

具体来说,这是我用于剧情的代码:

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

已创建的图表具有以下形式:

3D - Gaussian

我还想要制作的东西是这样的:

Contour - Gaussian

但是,当我使用这段代码时:

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

我收到一条消息:

使用轮廓时出错(第48行) Z必须至少为2x2矩阵。

我真的不知道如何解决这个问题,我认为Z是Y,但我不明白为什么它必须至少是2x2。无论如何,任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您无法在分散数据上创建轮廓,需要网格。可以使用NxN(此处域为griddata作为示例)在XY域中[-2,2]x[-2,2]个样本的网格上插入数据:

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);

有关如何插入分散数据的更多信息here