1

我需要绘制(条形)PDF 和估计的 PDF。

一切都始于生成一个统一的随机信号。

x = random('unif',1,2,1,1000); % between 1 and 2

现在要绘制估计的 PDF,我正在使用函数hist

[N,Mx] = hist(x,10); % 10 intervals
bar(Mx,N);

在此处输入图像描述

现在我需要在同一个图上绘制 PDF。我需要使用函数pdf

我试过了P = pdf('unif',linspace(1,2,1000),1,2);

但是我在参数之间迷路了,我需要绘制x的PDF,我该怎么做?

4

2 回答 2

2

为了同时显示条形图和 pdf,您可以使用命令 hold on 同时绘制两者。

更复杂的部分是让比例因子对于实验和实际 pdf 都具有可比性。dx 为 1(介于 1 和 2 之间)的均匀分布始终为 1(因为 pdf 在其范围内积分为 1)。因此,我们需要根据我们为每个 bin 获得的频率值来缩放实验 pdf。标度为 Nbar/Nsamp。如果你的 dx 不等于 1,那么这个比例变化是 Nbar/(Nsamp*dx)

Nsamp = 1000;
Nbar = 10;

xMin = 1;
xMax = 2;
dx = xMax-xMin;

x = random('unif',xMin,xMax,1,Nsamp); 

[N,Mx] = hist(x,Nbar); 
bar(Mx,N/(Nsamp*dx)*Nbar);

P = pdf('unif',linspace(xMin,xMax,Nsamp),xMin,xMax);
hold on;
plot(linspace(xMin,xMax,Nsamp),P,'--r');
hold off

这是结果图:

在此处输入图像描述

于 2013-04-02T07:07:03.430 回答
0

MATLAB 的histogram函数作为归一化选项,可自动缩放以获得经验pdf形状。

有些人可能会发现这比手动缩放更容易。该命令很简单,具有非常方便的输入和输出: h = histogram(X,'Normalization','pdf')

直方图函数示例

N = 1000;
a = 1;
b = 2;
X = a + (b-a)*rand(N,1);   % X ~ Uniform(a,b)

figure, hold on, box on
h = histogram(X,'Normalization','pdf','DisplayName','Generated data');
p = plot([a; b],ones(2,1)./(b-a),'r-','DisplayName','U(1,2) PDF');
legend('show','Location','southoutside','Orientation','horizontal');
xlim([1 2]);
于 2018-12-10T01:11:24.447 回答