Это очень необычный способ нормализации функции плотности вероятности. Я предполагаю, что вы хотите нормализовать так, чтобы площадь под кривой равнялась 1. В этом случае это то, что вы должны сделать.
[c,x]=hist(average,15);
normalized=c/trapz(x,c);
bar(x,normalized)
В любом случае, чтобы ответить на ваш вопрос, вы можете использовать randn
для генерации нормального распределения. Теперь вы генерируете матрицу равномерного распределения 50x50
и суммируете по одному измерению для приближения к нормальному гауссову. Это не нужно. Чтобы сгенерировать нормальное распределение 1000 точек, используйте randn(1000,1)
или, если вы хотите вектор строки, транспонируйте его или переверните числа. Чтобы сгенерировать гауссово распределение среднего mu
и дисперсию sigma2
и построить его pdf, вы можете сделать (пример)
mu=2;
sigma2=3;
dist=sqrt(sigma2)*randn(1000,1)+mu;
[c,x]=hist(dist,50);
bar(x,c/trapz(x,c))
Хотя это можно сделать с помощью специальных функций из набора инструментов статистики, это одинаково просто, просто и не требует дополнительных наборов инструментов.
EDIT
Я пропустил ту часть, где вы хотели узнать, как создать равномерное распределение. rand
, по умолчанию выдает случайную величину из равномерного распределения на [0,1]
. Чтобы получить р.в. из равномерного распределения между [a, b]
, используйте a+(b-a)*rand