【问题标题】:Cumulative distribution in matlabmatlab中的累积分布
【发布时间】:2013-10-17 13:03:28
【问题描述】:

我有一个关于使用 Matlab 绘制概率分布和累积分布曲线的问题。我很抱歉问了一个菜鸟问题,但我是 Matlab 的新手,只使用了几个小时。

我有一组数据,其中包含在海滩上发现的沙粒的大小范围(以毫米为单位)。 (例如:>2.00、1.00-2.00、0.50-1.00、

我应该如何在 Matlab 系统中输入值,以便在同一图上用不同颜色绘制概率分布和累积分布曲线?百分比应为 y 轴,大小范围应为 x 轴。

【问题讨论】:

  • 我建议先学习一些基本的 Matlab 教程,它会教你如何定义矩阵并首先进行基本绘图。
  • 一份不错的Matlab tutorials列表。
  • 累计分布部分看cumsum

标签: matlab distribution probability


【解决方案1】:

如果您的数据集实际上是 4 个点,那么您可以简单地按字面输入它们。例如,如果我的数据集是 {(A, 1), (B, 2), (C, 3)},那么我们可以简单地设置 y = [1, 2, 3]x = {'a', 'b', 'c'}

对于发行版,您应该查看 sumcumsum 函数。

对于绘图,请查看bar 的频率图和plot 的累积图(这只是我的偏好)。该文档包含有关设置颜色的信息。

要在同一张图上绘图,请查看hold。要标记您的绘图和坐标轴,请查看 xlabelylabeltitle

Matlab 有一个很好的FAQ on setting the actual values that are displayed on each axis。例如,我可以通过仅绘制 y 向量来绘制我的数据集,然后将 X 刻度标签设置为“A”、“B”和“C”。

【讨论】:

    【解决方案2】:

    我会小心cumulative distribution function (CDF)。以增加的粒度重新排序数据可能更有意义(请参阅fliplr() 函数),否则您的 CDF 的解释将受到怀疑。

    cumsum() 函数可以从给定的probability mass function (PMF) 获取您的 CDF。

    label={'<0.50','0.50-1.00','1.00-2.00','>2.00'}';
    pmf = [0.086 0.359 0.255 0.30]';
    cdf = cumsum(pmf);
    
    bar(pmf)                              % PMF
    set(gca,'XTickLabel',label)
    title('Sand Particle Size Distribution')
    xlabel('Sand particle size (mm)')
    
    figure    
    stairs(cdf,'ks-','LineWidth',2.0)     % CDF
    set(gca,'XTick',1:length(label),'XTickLabel',label)
    ylabel('Percentile')
    xlabel('Sand particle size (mm)')
    ylim([0 1])
    

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 2014-05-30
      • 1970-01-01
      • 2015-03-14
      • 2013-03-02
      • 1970-01-01
      相关资源
      最近更新 更多