samplediscretedistribution.m
来自「Continuous Profile Models (CPM) Matlab T」· M 代码 · 共 42 行
M
42 行
% function ind = sampleDiscreteDistribution(x)%% given a 1D discrete probability distribution, x, % take a sample from itfunction ind = sampleDiscreteDistribution(xx)if (issparse(xx)) xx=full(xx);endif (min(size(xx))>1) error('x should be 1d');endif (sum(xx)==0) ind=0; return;end%normalize x in case it isn'tx = xx./sum(xx);if (sum(x)-1>100*eps) warning('sum should equal 1'); keyboard;end%generate random number uniformly between 0 and 1:randNum = rand;%form cumulative distributioncumDistrib = cumsum(x);ind = min(find(cumDistrib>=randNum));if (isempty(ind)|ind<1) warning('ind<1'); keyboard; ind=0;end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?