2016-09-26 33 views
0

你好堆栈溢出fam我一直在试图找出如何在MATLAB上使用这个pesty fitgmdist来拟合高斯混合模型我已经取得了进展,但我仍然得到试图初始参数的设定时出现错误,我得到以下错误:在matlab fitgmdist上进行高斯混合模型,但仍然出现错误:(

初始协方差必须是3D阵列以K页时“SharedCovariance”是 假的每一页必须是一个方阵。如果 'CovarianceType'为'full',或者如果'CovarianceType'为'对角线',则其长度等于X中 列的长度的向量的列数与X的列数相同。

代码:

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) 

我使用从UNIF产生10000号的随机数据集(0,1)分布,其中假定初始比例也从5张随机数产生,装置1,2, 3,4和5以及1,2,4,8,16。谢谢!

回答

0

问题出在您的结构S,协方差矩阵应该有5个页面,如错误消息中所述。解决方案示例:

... 
c=zeros(1,1,5); 
c(1,1,:) = [1;2;4;8;16]; 
... 
相关问题