首页 文章

如何绘制数组中的值与这些值在Matlab中出现的次数?

提问于
浏览
0

我有一组年龄(超过10000),我想在x轴上绘制年龄从20到100的图表,然后在y轴上的数据中显示每个年龄的图表 . 我已经尝试了几种方法来做到这一点,我无法弄明白 . 我还有一些其他数据要求我绘制值与它们出现的次数,所以任何关于如何做到这一点的建议将非常感激 .

我对Matlab很陌生,所以如果你能解释你的答案中的内容是如何工作的,而不仅仅是键入一些代码,那将会很棒 .

谢谢 .

编辑:

所以我输入了直方图(年龄,80),因为据我所知,它将绘制直方图中的年龄值,分成80个柱(每个年龄1个) . 相反,我得到了这个:

enter image description here

条形图未对齐,显然不是每个年龄1条,也没有绘制每个年龄在y轴上出现的次数 .

2 回答

  • 1

    你必须使用 histogram() ,这是正确的 .
    让我们看一个例子 .

    我提取100到20岁之间的100岁:

    ages=randsample([20:100],100,true);
    

    现在我以这种方式打电话给 histogram()

    h=histogram(ages,[20:100]);
    

    其中 h 是直方图对象,这也将显示以下图:

    enter image description here

    但是,由于我的年龄向量在20:100范围内,因此它可能看起来很容易,因此它不会包含任何其他值 . 如果你的矢量也包含年龄不在20:100范围内的年龄,你可以在 histogram() 中指定附加选项 'BinLimits' 作为第三个输入,如下所示:

    h=histogram(ages,length([20:100]),'BinLimits',[20:100]);
    

    此选项使用 ages 中的值(包括20和100之间的值)绘制直方图 .

    注意:通过检查 h ,您实际上可以查看和/或编辑直方图的某些属性 . 您可能感兴趣的此类对象的属性(字段)是值 . 这是一个长度为80的向量(在我们的例子中,因为我们使用80个箱),其中第i个元素是项目数是第i个bin . 这将帮助您计算出现次数(以防您需要继续进行分析) .

  • 0

    就像路易斯在评论中所说, hist 是要走的路 . 您应该指定bin边缘,而不是bin的数量:

    ages = randi([20 100], [1 10000]);
    hist(ages, [20:100])
    

    这是你在找什么?

相关问题