0

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

我有一组数据,其中包含在海滩上发现的沙粒的尺寸范围(以毫米为单位)。(eg: >2.00, 1.00-2.00, 0.50-1.00, <0.50) 其对应的找到这些砂粒的百分比如下: (eg: 30, 25.5, 35.9, 8.6)。

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

4

2 回答 2

1

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

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

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

要在同一图表上绘图,请查看hold. 要标记绘图和坐标轴,请查看xlabelylabeltitle

Matlab 有一个很好的关于设置每个轴上显示的实际值的常见问题解答。例如,我可以通过y仅绘制矢量来绘制上面的数据集,然后将 X 刻度标签设置为“A”、“B”和“C”。

于 2013-10-17T13:37:18.573 回答
1

I'd be careful with the cumulative distribution function (CDF). It might make more sense to reorder your data in increasing particle size (see fliplr() function) otherwise your CDF's interpretation will be suspect.

The cumsum() function can get your CDF from the given probability mass function (PMF).

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])

Sand Particle Size PMF

Sand Particle Size CDF

于 2018-11-07T20:42:09.950 回答