我如何从已经在MATLAB中适合allfitdist的分布中随机采样?

时间:2019-01-24 13:36:44

标签: matlab random data-fitting

我已经使用函数“ allfitdist”找到了变量分布(D(:,2))的最佳拟合。现在,我想将此结果保存到结构中,然后从该结果中随机采样10000次。我正在使用以下代码:

[Ddg2 PDdg2] = allfitdist(D(:,2),'cdf')
My(2).result = PDdg2{1,1} %generalized pareto
output = random(My(2).result,10000)

有些麻烦,因为在输出中我得到了一个很大的矩阵。当我从此分布中随机抽样时,也许我在代码的第三个原始代码中错了。 有人可以帮我吗?

1 个答案:

答案 0 :(得分:3)

documentation of random说:

  

R = random(___,sz1,...,szN)R = random(___,[sz1,...,szN])使用输入参数从指定的概率分布中生成sz1逐个szN的随机数数组...
  ...
  如果您指定单个值sz1,则R是大小为sz1的方阵。

您已将sz1指定为10000,这是一个单一值,因此您的output矩阵为10000×10000

解决方案是:

output = random(pd,1,10000);