📄 hmmrandinit.m
字号:
function [hmm] = hmmrandinit (X,hmm,covtype)% function [hmm] = hmmrandinit (X,hmm,covtype)%% Initialise Gaussian observation HMM model % using a randomly initialised static Gaussian Mixture Model%% X N x p data matrix% hmm hmm data structure% covtype 'full' or 'diag' covariance matricesN=size(X,1);p=size(X,2);mix.ncentres=hmm.K;% get some ranges within which the random values should lieinitmean=mean(mean(X));initvar=mean(var(X));% random inititalisation; for k=1:mix.ncentres, mix.centres(k,:)=initmean*rand(1,p); if covtype=='full', mix.covars(:,:,k)=initvar*rand(p,p); mix.covars(:,:,k)=mix.covars(:,:,k)'*mix.covars(:,:,k); elseif covtype=='diag', mix.covars(k,:)=initvar*rand(1,p); else error('Unknown type of covariance matrix'); end;end; hmm.gmmll=0; % Log likelihood of gmm model; not used in rand. init.for k=1:mix.ncentres; hmm.state(k).Mu=mix.centres(k,:); switch covtype case 'full', hmm.state(k).Cov=squeeze(mix.covars(:,:,k)); hmm.init_val(k).Cov = hmm.state(k).Cov; % In case we need to re-init case 'diag', hmm.state(k).Cov=diag(mix.covars(k,:)); hmm.init_val(k).Cov = hmm.state(k).Cov; % In case we need to re-init otherwise, disp('Unknown type of covariance matrix'); endendhmm.train.init='gmm';hmm.mix=mix;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -