Matlabでは以下のガウスプロセスを実装したいと考えています。これまではnormpdfとnormrndを試しましたが、結果は私が期待していたものではありません。 B
はNxN
行列であり、enの期待される結果はNx1ベクトルです。両方の方法を使用して、私はNxN
行列を得る。Matlabはガウスプロセスを実装します
提案がありますか?
Matlabでは以下のガウスプロセスを実装したいと考えています。これまではnormpdfとnormrndを試しましたが、結果は私が期待していたものではありません。 B
はNxN
行列であり、enの期待される結果はNx1ベクトルです。両方の方法を使用して、私はNxN
行列を得る。Matlabはガウスプロセスを実装します
提案がありますか?
私は、これはあなたが探しているものだと思う:あなたは(独立した標準正規変数のサンプルを生成し、適切な変換を適用することにより)、手動で同じ計算を実行したい場合は
% 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);
ご返信ありがとうございます。問題が解決しました! – mnmbs
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
に変更してください。
ご返信ありがとうございました – mnmbs
これは変です。行列をシグマとして使用する場合は、多変量分布を扱う必要があり、行列を返す必要があります。 –