在Matlab

时间:2017-09-12 21:01:56

标签: matlab random probability

我必须编写一个计算机程序,当给出概率质量函数时 {pj,j = 1 ,. 。 。 ,n}作为输入,给出一个随机值作为输出 具有这种质量函数的变量。这是我对这个问题的唯一信息。我试过这个

%f(x)=pdf 
%F(x)=cdf 
%X=tixaia metavliti 

f(x);
X;
F(x)= cumsum(f(x));

%firstly we want F(x) to have unique values
%we remove the non-unique values from cdf and X
[F(x),mask] = unique(F(x));
X = X(mask);

%apply inverse interpolation
%so we can produce random value X from the cdf

u = rand;

projection = interp1( F(x),X,u );

那个代码是否接近解决我的问题?任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

这是一个基于定义的概率从矢量(7 8 9 10)中采样2个值的示例。它使用统计工具箱。


    R = randsample([7 8 9 10],2,true,[0.15 0.35 0.35 0.15])

如果您想自己编写代码,Tasos会向您指出正确的链接。