Мне нужно вычислить плотность вероятности функции 1/2-х, где х представляет собой случайное число в диапазоне от 0 до 1.MATLAB Гистограмме Проблема
Моего кода выглядит следующим образом:
n=10^6;
b=10^2;
x=(1./(2-(rand(1,n))));
a=histfit(x,b,'kernel'); % Requires Statistics and Machine Learning Toolbox
xlim([0.5 1.0])
И я получаю приличный график, который выглядит следующим образом:
Как это может быть очевидно, есть несколько проблем с этим:
MATLAB рисует припадок, который отличается от моей гистограммы, потому что он считает в пустом пространстве вне
[0.5 1]
диапазона функции, а также. Это приводит к искаженной подгонке к краям. (Причина, по которой вы не видите пустое место, потому что я ввел xlim там)Я не знаю, как я мог бы разделить каждое значение по оси Y на 10^6, что дало бы мне мой плотность вероятности.
Заранее спасибо.
но 'kernel' метод делает 100 оконных средний ваши данные, поэтому он предназначен для непрерывных данных ... Я не думаю, что вы можете избежать этого, если не расширить свои данные и отбросьте первую и последнюю ячейки вашей гистограммы ... – GameOfThrows
Вот что я подумал, как мне расширить данные? Я не * имею * использовать ядро, поэтому, если есть лучший вариант, который я хотел бы знать. Другие дают кривые, которые не подходят вообще. – wololo