2010-09-29 4 views
3

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

Прямо сейчас я использую файл pdfplot.m для построения моей эмпирической pdf, однако, когда я хочу сравнить 3 дистрибутива с помощью «hold on», то сначала его не работает, а во-вторых, все дистрибутивы одного цвета. Благодаря!

EDIT: Я не хочу строить cdf.

+2

Вы понимаете, что pdfplot.m просто участки Земельные участки нормированную гистограмму с 20 ящиками? Итак, какой аспект pdfplot важен для вас, который не входит в число вариантов по умолчанию? – Jonas

+0

Jonas: _ «Вы понимаете, что pdfplot.m просто рисует нормализованную гистограмму с 20 ячейками» _ - я не осознавал этого факта: P – Pupil

ответ

4

hist:

hist(data) 

или, если вы хотите получить больше контроля над тем, как она представлена, использование:

[n,x] = hist(data); 
plot(x,n,'rx-'); %# just an example, plot the pdf with red x's and a line, 
       %# instead of bars 
figure; 
plot(x, cumsum(n)/sum(n)); %# plot the CDF 
+0

Ofri: Есть ли способ, которым я могу сохранить все мои 100 значений в векторе и запишите их как hist (или pdf)? – Pupil

+1

try hist (данные, min (данные): max (данные)) или [n, x] = hist (данные, мин (данные): max (данные)) –

+0

_ "try hist (данные, мин (данные): max (данные)) или [n, x] = hist (данные, мин (данные): max (данные)) "_ - Это не работает. Дает ошибку _ ошибки. – Pupil

11

Что вы ищете Kernel density estimation (также известный как Парзена окна). Его реализованы в KSDENSITY функции в панели инструментов статистики:

data = randn(100,1); 
ksdensity(data) 

alt text

Запись Википедии выше, имеет пример MATLAB, используя представление функции на FEX

+0

Graet! именно то, что я искал ... – Adiel