2017-12-14 1 views
1

Matlab에서 다음 가우스 프로세스를 구현하고 싶습니다. 지금까지 normpdf와 normrnd를 시도했지만 결과는 내가 기대했던 것이 아닙니다. BNxN 행렬이며 예상되는 en의 결과는 Nx1 벡터입니다. 두 방법을 모두 사용하여 NxN 행렬을 얻습니다.Matlab은 가우스 프로세스를 구현합니다

제안 사항?

gaussian process

+0

음, 이상하게 보입니다. 행렬을 시그마로 사용하는 경우 다 변수 분포를 사용해야하며 행렬을 다시 받아야합니다. –

답변

1

나는 이것이 당신이 찾고있는 무엇을 생각 :

% 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); 
+0

답장을 보내 주셔서 감사합니다. 문제 해결됨! – mnmbs

1

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으로 변경해야합니다.

+0

답장을 보내 주셔서 감사합니다. – mnmbs