[英]Matlab implement gaussian process
randn
的文档页面显示了以下示例,该示例从双变量正态分布生成样本:
mu = [1 2];
sigma = [1 0.5; 0.5 2];
R = chol(sigma);
z = repmat(mu,10,1) + randn(10,2)*R
mu
是均值向量,应将其设置为适当大小的零向量。 sigma
是协方差矩阵,在您的示例中为B^-1
。 上面的示例绘制了10个样本,您可以将其更改为任意数量。 还要记住在应用程序中将尺寸2
更改为N
我认为这是您要寻找的:
% Number of samples for each variable:
k = 100;
% Your parameters:
mu = [0; 0]; % Vector of Means (0 in your case)
cov = [3 1; 1 3]; % Covariance Matrix (your B)
% Draw the samples...
s = mvnrnd(mu,cov,k);
如果要手动执行相同的计算(通过生成独立的标准正态变量的样本,然后应用适当的转换):
% Number of samples for each variable:
k = 100;
% Your parameters:
mu = [0 0]; % Vector of Means (0 in your case)
cov = [3 1; 1 3]; % Covariance Matrix (your B)
% Draw the samples...
s_ind = randn(k,size(cov,1));
s = repmat(mu,k,1) + (chol(cov) * ind_s);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.