我参考了链接 https://stats.stackexchange.com/questions/105516/how-to-implement-a-2-d-gaussian-processes-regression-through-gpml-matlab 并创建了一个2维高斯过程回归。我想创建一个4维的高斯过程回归,然而’meshgrid’函数只能接受3个输入([X,Y,Z] = meshgrid(x,y,z))
;我该如何向meshgrid添加另一个输入呢?
3维代码如下所示:
X1train = linspace(-4.5,4.5,10);X2train = linspace(-4.5,4.5,10);X3train = linspace(-4.5,4.5,10);X = [X1train' X2train' X3train'];Y = [X1train + X2train + X3train]';%Testdata[Xtest1, Xtest2, Xtest3] = meshgrid(-4.5:0.1:4.5, -4.5:0.1:4.5, -4.5:0.1:4.5); Xtest = [Xtest1(:) Xtest2(:) Xtest3(:)];% implement regression [ymu ys2 fmu fs2] = gp(hyp, @infExact, [], covfunc, likfunc, X, Y, Xtest);
如果我创建了一个X4train,那就意味着我需要一个Xtest4,我该如何将Xtest4添加到meshgrid中呢?
GPML代码来自 http://www.gaussianprocess.org/gpml/code/matlab/doc/
回答:
您可以使用 ndgrid 创建n维网格,但请注意,它不会直接生成与meshgrid相同的输出,您需要先进行转换。(如何转换在文档中有详细说明)