我如何从 MATLAB 中已经装有 allfitdist 的分布中随机抽样?

How can i randomly sample from a distribution already fitted with allfitdist in MATLAB?

我使用函数 "allfitdist" 找到了变量分布 (D(:,2)) 的最佳拟合。现在我想将这个结果保存在一个结构中,然后我想从这个结果中随机抽样 10000 次。我正在使用此代码:

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

有些东西磨损了,因为在输出中我得到了一个非常大的矩阵。当我从这个分布中随机抽样时,也许我在代码的第三个原始部分是错误的。 有人可以帮助我吗?

documentation of random 说:

R = random(___,sz1,...,szN) or R = random(___,[sz1,...,szN]) generates a sz1-by-⋯-by-szN array of random numbers from the specified probability distribution using input arguments...
...
If you specify a single value sz1, then R is a square matrix of size sz1.

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

所以解决方案是:

output = random(pd,1,10000);