我到处搜寻,一无所获。有没有办法在Octave中执行加权样本?
也就是说,如果我们有两个向量e和v,其中sum(v)= 1,那么从概率v中抽取e中n个元素的方法。
答案 0 :(得分:1)
您希望根据向量中的概率确定索引' v'然后选择相应的索引到' e。因此,您需要使用Inverse transform sampling。一个简单的方法是例如:
clear
close all
e = [10 20 30 40 50];
v = [0.1 0.2 0.5 0.1 0.1];
cdf = cumsum(v);
n = 1000;
E = [];
for i=1:n
r = rand;
idx = find(cdf>r);
E = [E e( idx(1) )];
end
hist(E)