📄 gmmsamp.html
字号:
<html><head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1"> <title>gmmsamp.m</title><link rel="stylesheet" type="text/css" href="../../m-syntax.css"></head><body><code><span class=defun_kw>function</span> <span class=defun_out>data </span>= <span class=defun_name>gmmsamp</span>(<span class=defun_in>model,num_data</span>)
<br><span class=h1>% GMMSAMP Generates sample from Gaussian mixture model.
</span><br><span class=help>%
</span><br><span class=help>% <span class=help_field>Synopsis:</span></span><br><span class=help>% data = gmmsamp(model,num_data)
</span><br><span class=help>%
</span><br><span class=help>% <span class=help_field>Description:</span></span><br><span class=help>% This function generates num_data samples from a Gaussian
</span><br><span class=help>% mixture given by structure model. It returnes samples X
</span><br><span class=help>% and a vector y of Gaussian component responsible for
</span><br><span class=help>% generating corresponding sample.
</span><br><span class=help>%
</span><br><span class=help>% <span class=help_field>Input:</span></span><br><span class=help>% model
</span><br><span class=help>% .Mean [dim x ncomp] Mean vectors.
</span><br><span class=help>% .Cov [dim x dim x ncomp] Covariance matrices. In the case of
</span><br><span class=help>% univariate mixture (dim=0) the variances can enter
</span><br><span class=help>% as a vector Cov=[var1 var2 ... var_ncomp].
</span><br><span class=help>% .Prior [ncomp x 1] Weighting coefficients of Gaussians.
</span><br><span class=help>% num_data [int] Number of samples.
</span><br><span class=help>%
</span><br><span class=help>% <span class=help_field>Output:</span></span><br><span class=help>% data.X [dim x num_data] Generated sample data.
</span><br><span class=help>% data.y [1 x num_data] Identifier of Gaussian which generated
</span><br><span class=help>% given vector.
</span><br><span class=help>%
</span><br><span class=help>% <span class=help_field>Example:</span></span><br><span class=help>% model = struct('Mean',[-2 3],'Cov',[1 0.5],'Prior',[0.4 0.6]);
</span><br><span class=help>% figure; hold on;
</span><br><span class=help>% plot([-4:0.1:5], pdfgmm([-4:0.1:5],model),'r');
</span><br><span class=help>% sample = gmmsamp(model,500);
</span><br><span class=help>% [Y,X] = hist(sample.X,10);
</span><br><span class=help>% bar(X,Y/500);
</span><br><span class=help>%
</span><br><span class=help>% See also
</span><br><span class=help>% PDFGMM, GSAMP.
</span><br><span class=help>%
</span><br><hr><br><span class=help1>% <span class=help1_field>About:</span> Statistical Pattern Recognition Toolbox
</span><br><span class=help1>% (C) 1999-2003, Written by Vojtech Franc and Vaclav Hlavac
</span><br><span class=help1>% <a href="http://www.cvut.cz">Czech Technical University Prague</a>
</span><br><span class=help1>% <a href="http://www.feld.cvut.cz">Faculty of Electrical Engineering</a>
</span><br><span class=help1>% <a href="http://cmp.felk.cvut.cz">Center for Machine Perception</a>
</span><br><br><span class=help1>% <span class=help1_field>Modifications:</span>
</span><br><span class=help1>% 28-apr-2004, VF
</span><br><br><hr><span class=comment>% allow input argument to be cell array
</span><br>model = c2s( model);
<br>
<br><span class=comment>% get dimensions
</span><br>[dim,ncomp]=size(model.Mean);
<br>
<br><span class=comment>% univariate variances can be given as a vector
</span><br><span class=keyword>if</span> size(model.Cov,1) ~= size(model.Cov,2),
<br> model.Cov = reshape(model.Cov,1,1,ncomp);
<br><span class=keyword>end</span>
<br>
<br><span class=comment>% generates randomly Gaussian componenents responsible
</span><br><span class=comment>% for generation of samples
</span><br>cump = repmat(cumsum( model.Prior(:) ),1,num_data);
<br>rnd = ones(ncomp,1)*rand(1,num_data);
<br>
<br>data.y = ncomp-sum(cump > rnd, 1)+1;
<br>data.X = zeros(dim,num_data);
<br>
<br><span class=comment>% generate samples
</span><br><span class=keyword>for</span> i=1:ncomp,
<br> inx = find(data.y==i);
<br> data.X(:,inx) = gsamp(model.Mean(:,i),model.Cov(:,:,i),length(inx));
<br><span class=keyword>end</span>
<br>
<br><span class=jump>return</span>;
<br></code>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -