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