我有一个称为X的Nx2输入矩阵,还有一个输出值Y,它是一个向量Nx1我创建了一些数据进行测试,如下所示:

Xtest=linspace(x_min,x_max,n);
Ytest=linspace(y_min,y_max,n);

所以,矩阵Z是nx2维的,将用作我的测试点我使用GPML库提供的演示中的默认参数调整,如下所示:
covfunc = {@covMaterniso, 3};
ell = 1/4; sf = 1;
hyp.cov = log([ell; sf]);
likfunc = @likGauss;
sn = 0.1;
hyp.lik = log(sn);

然后使用gp功能:
[ymu ys2 fmu fs2] = gp(hyp, @infExact, [], covfunc, likfunc, x, y, z);

我希望ymu是z中每个测试值的预测值。当我这样绘制时:
[L1,L2]=meshgrid(Xtest',Ytest');
[mu,~]=meshgrid(ymu,ymu);
surf(L1,L2,ymu);

我有一个奇怪的表面也就是说,我得到了彩色区域的条纹,而不是预期的高斯结构X和Y中的数据是真实的数据。
我的期望是:

最佳答案

你用错了z变量应该由[L1(:)、L2(:)]给定那么你应该画的是:

surf(L1,L2,reshape(ymu,size(L1)));

09-25 20:44