📄 samplediscretedistribution.m
字号:
% 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -