Octave中的加权样本

时间:2014-07-26 18:30:07

标签: octave

我到处搜寻,一无所获。有没有办法在Octave中执行加权样本?

也就是说,如果我们有两个向量e和v,其中sum(v)= 1,那么从概率v中抽取e中n个元素的方法。

1 个答案:

答案 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)