我已经生成了类似于高斯分布的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。无论如何,任何帮助将不胜感激。
答案 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。