三变量高斯等值线图-MATLAB

三变量高斯等值线图-MATLAB,matlab,plot,contour,gaussian,Matlab,Plot,Contour,Gaussian,我已经生成了一个类似高斯分布的3D图,带有随机变量Y、X1和X2(1000x1)向量。Y在垂直轴上,X1和X2水平 具体来说,这是我用于绘图的代码: plot3(x(:,1),x(:,2),y,'.') 已创建的图形具有以下形式: 我还想制作这样的东西: 但是,当我使用此代码时: contour(x(:,1),x(:,2),y); 我收到一条消息: 使用等高线时出错(第48行) Z必须至少是一个2x2矩阵 我真的不知道如何解决这个问题,我假设Z是Y,但我不明白为什么它必须至少是2x2。无

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

具体来说,这是我用于绘图的代码:

plot3(x(:,1),x(:,2),y,'.')
已创建的图形具有以下形式:

我还想制作这样的东西:

但是,当我使用此代码时:

contour(x(:,1),x(:,2),y);
我收到一条消息:

使用等高线时出错(第48行) Z必须至少是一个2x2矩阵


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

不能在分散的数据上创建等高线,需要网格。可以使用
griddata
(此处域为
[-2,2]x[-2,2]
)在XY域中的
NxN
样本网格上插值数据:

有关如何插值散乱数据的详细信息

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