【发布时间】:2018-02-21 10:34:14
【问题描述】:
我必须编写一个计算机程序,当给定一个概率质量函数时 {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 );
该代码是否可以解决我的问题?谁能帮帮我?
【问题讨论】:
-
试图澄清你的意思;给你一个任意的 pmf,并要求从中采样 N 个数据点(无需替换),有效地生成符合该 pmf 的 N 个观察值的随机样本?
-
@TasosPapastylianou 是的,就是这样。我以前从未使用过Malab,对它也不是很熟悉。你能帮我吗?
-
在 SO 中要求人们为您编写代码往往是不受欢迎的(不是批评,就是这样)。但这里有一个起点:matlabtricks.com/post-44/… 尝试理解获取累积分布函数的“技术”,并从该技术开始进行逆变换。然后尝试编写自己的代码。如果您对您编写的特定代码有问题,那么 SO 社区通常很乐意提供帮助。
-
@TasosPapastylianou Σ'ευχαριστώ πολύ,我会研究链接并尝试应用它!!!!
标签: matlab random probability