2016-09-26 4 views
0

Hello stack overflow fam.이 가우스 fitgmdist를 MATLAB 피팅 Gaussian Mixture 모델에 사용하는 방법을 알아 내려고 노력했습니다. 'SharedCovariance이'거짓 때Gaussian Mixture 모델을 MATLAB fitgmdist로 진행했지만 여전히 오류가 발생 함 :(

초기 공분산은 K 페이지와 3D 배열해야한다 각 페이지는 정방 행렬이어야합니다.하지만 난 아직도 내가받을 다음과 같은 실수 초기 매개 변수를 설정하는 동안 오류를 얻고있다. 'CovarianceType'이 'full'인 경우 인 경우 X와 동일한 열 수를 가지며 'CovarianceType'이 'diagonal'인 경우 X의 열 수와 길이가 같은 벡터

코드 : 나는 UNIF에서 생성 10000 개 숫자의 임의의 데이터 세트를 사용하고

x=rand(5,1); 
x=transpose(transpose(x)); 
y= sum (x); 
x=x./y; 
a=zeros(10000,1); 
b=[1;2;3;4;5]; 
c=[1;2;4;8;16]; 
i=1; 
for i=1:10000 
    a(i,1)=rand(); 
end 
S = struct('mu',b,'Sigma',c,'ComponentProportion',x) 
GMModel=fitgmdist(a,5,'Start', S) 

는 (0,1) 분포는도 5 개 난수로 생성되어 초기 비율로, 2, 1을 의미합니다 3, 4 및 5뿐만 아니라 sigmas 1,2,4,8,16. 고맙습니다!

답변

0

구조체에 S의 문제가 있습니다. 공분산 행렬에는 오류 메시지에 언급 된대로 5 페이지가 있어야합니다. 용액의 예 :

... 
c=zeros(1,1,5); 
c(1,1,:) = [1;2;4;8;16]; 
... 
관련 문제