samplegaussmixture.m
来自「Continuous Profile Models (CPM) Matlab T」· M 代码 · 共 37 行
M
37 行
function [r mixFlags numVal] = sampleGaussMixture(... mixMeans,mixVars,mixProp,N,mixFlags)% sample [N 1] times from a mixture of gaussians with% means given by mixMeans and variances by mixVars% (each of these should have one value for each component)%% assumes scalar gaussians for now... not hard to change, use% cholesky decomp, or mvrnd%% mixFlags tells which component the item was drawn frommixProp= mixProp/sum(mixProp);r = Inf*ones(N,1);if ~exist('mixFlags','var') mixFlags = Inf*ones(N,1); % sample N from a multinomial for j=1:N mixFlags(j) = find(sample_hist(mixProp',1)); endendfor c=1:length(mixProp) ind = find(mixFlags==c); numVal(c) = length(ind); theseVals = randn(1,numVal(c))*sqrt(mixVars(c)) + mixMeans(c); r(ind)=theseVals; endif any(isinf(r)) error('missing some entries');endreturn;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?