三变量高斯等值线图-MATLAB
我已经生成了一个类似高斯分布的3D图,带有随机变量Y、X1和X2(1000x1)向量。Y在垂直轴上,X1和X2水平 具体来说,这是我用于绘图的代码:三变量高斯等值线图-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。无
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);