Plot 倍频程分布图不工作

Plot 倍频程分布图不工作,plot,octave,distribution,Plot,Octave,Distribution,我试着画出八度均匀分布的cdf,但我没有得到cdf。我只是得到了最初的发行版。另外,原来的分布,即均匀分布,根本不是均匀分布 这是我的八度代码: x = unifrnd(0,1,100,1); hist(x) cdfPlot = unifcdf(x) hist(cdfPlot) 第一个的直方图(hist(x)): 第二个(hist(cdfPlot)): 我还尝试在八度音阶中使用cdfplot(x),但它说: 警告:“cdfplot”函数属于来自的统计数据包 Octave Forge,但尚未

我试着画出八度均匀分布的cdf,但我没有得到cdf。我只是得到了最初的发行版。另外,原来的分布,即均匀分布,根本不是均匀分布

这是我的八度代码:

x = unifrnd(0,1,100,1);
hist(x)
cdfPlot = unifcdf(x)
hist(cdfPlot)
第一个的直方图(
hist(x)
):

第二个(
hist(cdfPlot)
):

我还尝试在八度音阶中使用
cdfplot(x)
,但它说:

警告:“cdfplot”函数属于来自的统计数据包 Octave Forge,但尚未实施

请阅读以了解如何 贡献缺少的功能


请帮忙

根据提交的代码判断,您要做的是从均匀分布中获取样本,然后显示与均匀分布相对应的平坦(大部分)直方图和与分布的累积分布相对应的直线

第一部分: 当然,对于100个样本(没有平均值),您不会观察到平坦分布,但如果您尝试:

x=unifrnd(0,1,100000,1);
hist(x);
这样,您就更有可能得到一个平面直方图

第二部分:
unifcdf(x,A,B)
将返回参数A,B设置的间隔之间某个值x处的均匀分布的CDF值。也就是说,CDF模型本身的值,不是样本直方图的累积和。要获得该信息,您需要:

x=unifrnd(0,1,100000,1);
[counts, intervals] = hist(x);
xCDF = cumsum(counts);
bar(xCDF);
最后,如果您要查找模型值,即描述分布的公式将返回的值,那么对于均匀分布,在a、B间隔(在本例中为0,1)和
(1/nBins)*NSamples计数之间的概率为
(1/nBins)
,而CDF将是一条斜率线
(1/nBins)
(即密度函数的间隔)和
binNum*((1/nBins)*NSamples)
。在上面的示例中,使用
hist
的默认
nBins
为10,
x
被分解为10个间隔,每个间隔大约有10000个
x
项目的计数,累积和的最后一个值是100000,这当然是
x
中的样本总数

有关更多信息,请参阅

希望这有帮助