Как я могу случайно выбрать из дистрибутива, уже оснащенного allfitdist в MATLAB? - PullRequest
0 голосов
/ 24 января 2019

Я нашел наилучшее соответствие для распределения переменных (D (:, 2)), используя функцию "allfitdist".Теперь я хочу сохранить этот результат в структуре, а затем я хочу случайной выборки 10000 раз из этого результата.Я использую этот код:

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

Что-то странное, потому что на выходе я получаю действительно большую матрицу.Возможно, я ошибаюсь в третьем фрагменте кода, когда я случайно выбираю этот дистрибутив.Кто-то может мне помочь?

1 Ответ

0 голосов
/ 24 января 2019

Документация random гласит:

R = random(___,sz1,...,szN) или R = random(___,[sz1,...,szN]) создает массив sz1 -by- ⋯ -by- szNслучайные числа из указанного распределения вероятностей с использованием входных аргументов ...
...
Если указать одно значение sz1, то R является квадратной матрицей размера sz1.

Вы указали sz1 как 10000, который является единственным значением, и, следовательно, ваша output матрица равна 10000×10000.

Таким образом, решение:

output = random(pd,1,10000);
...