【问题标题】:how to normalize histogram如何标准化直方图
【发布时间】:2016-01-13 20:28:07
【问题描述】:

我会使用逆方法创建指数分布。我想标准化直方图。我该怎么做?

这是我的代码

N=100;
Lambda=2;
r=rand(N,1);
X=-log(1-r)/Lambda;
hist(X), colormap(bone);

t = 0:0.01:5;
pdf=Lambda*exp(-Lambda*t);
hold on, plot(t,pdf,'LineWidth',2)

【问题讨论】:

  • 请通过规范化直方图来定义您的意思
  • 您将每个元素与给定的数字相乘,pdf=c*Lambda*exp(-Lambda*t);

标签: matlab plot histogram distribution


【解决方案1】:

直方图应归一化为单位面积,以便与理论pdf进行比较。要标准化为单位面积,您需要除以样本数和 bin 宽度:

N = 100;
Lambda=2;
r = rand(N,1);
X = -log(1-r)/Lambda;
[hy, hx] = hist(X); %/ get histogram values
hy = hy/numel(X)/(hx(2)-hx(1)); %//normalize histogram
bar(hx, hy) %// plot histogram
t = 0:0.01:5;
pdf = Lambda*exp(-Lambda*t);
hold on, plot(t,pdf,'LineWidth',2) %// plot pdf

或使用新的histogram 函数(在R2014b 中引入),该函数根据指定的规范化选项自动规范化

N = 100;
Lambda=2;
r = rand(N,1);
X = -log(1-r)/Lambda;
histogram(X, 'Normalization', 'pdf') %// plot normalized histogram
t = 0:0.01:5;
pdf = Lambda*exp(-Lambda*t);
hold on, plot(t,pdf,'LineWidth',2) %// plot pdf

【讨论】:

  • 对于像我这样的外行读者来说,单位面积表示曲线的总面积必须等于1(单位)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-22
  • 2022-08-19
相关资源
最近更新 更多