2013-10-25 3 views
0

У меня есть вектор 1x4225, что его элементы находятся между 0 и 1, и я хочу построить функцию плотности вероятности в Matlab. В случае ksdensity() проблемы заключается в том, что вероятность иногда становится больше 1. Я также попытался код ниже, чтобы сделать это:Функция плотности вероятности построения в matlab

A= [1x4225];   
xRange = 0:1;     
N = hist(A,xRange);   
plot(xRange,N./numel(A)) 

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

+0

Вы действительно хотите, чтобы 'xRange = 0: 1;' думаю, что вам нужно больше двух точек, поэтому попробуйте что-то большее, как 'xRange = 0: 0.1: 1;' – Dan

+0

Вот что говорит мой ответ. ;) – chappjc

ответ

0

Когда вы делаете xRange = 0:1;, вы получаете 2-элементный вектор [0 1]. Это, вероятно, не то, что вы хотите. Указать такой шаг:

xRange = 0:0.01:1; 

черчения каждый элемент как точка достигается в MATLAB с линией спецификатора аргумента, например plot(xRange,N./numel(A),'*'). Однако для гистограммы с небольшим количеством ящиков вам может быть лучше с bar(...). Если вы пойдете с более тонким шагом, тогда построение графика может быть лучше.

Смежные вопросы