Может кто-нибудь показать мне, как построить равномерное распределение на 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))