Может кто-нибудь показать мне, как построить равномерное распределение на Matlab?

У меня уже есть этот код, который я позаимствовал из гауссовского дистрибутива и как бы изменил его. как показано ниже

[f,x]=hist(rand(1000000,1),50);%# create histogram from a normal distribution.
g=1/sqrt(2*pi)*exp(-0.5*x.^2);%# pdf of the normal distribution
%#METHOD 2: DIVIDE BY AREA
figure(2)
bar(x,f/trapz(x,f));hold on
plot(x,1,'r');hold off .

Теперь я могу что-то изменить, чтобы сделать красную линию без разграничений или нет? Дай мне знать. Большое спасибо!!

1 ответ

Что вы хотите, чтобы красная линия была? Если вы хотите постоянную красную линию в одном, вы должны использовать

plot(x,ones(size(x)),'r-')

Если вы хотите построить график на основе равномерного распределения, нормированного на единицу,

[f,x]=hist(rand(1000000,1),50);
bar(x,f/trapz(x,f));hold on
plot(x,ones(size(x)),'r-');
hold off 

Где деление на интеграл функции дает площадь под распределением, равную единице.

Если вы хотите получить распределение Гаусса напрямую, вы должны получить случайные числа из randn вместо ранда, например

[f,x]=hist(randn(1000000,1),50)
bar(x,f/trapz(x,f))
Другие вопросы по тегам