Matlab元素个数统计函数tabulate

()

今天,分享一个Matlab统计一维数组中某个元素出现次数的函数,tabulate。tabulate函数可以统计一维数组中每个元素出现的个数。他的输出为一个三列二维数组,第一列为所统计数组中的每个元素值(从小到大依次排列),第二列为第一列中每个元素出现的个数,第三列为第一列元素出现的百分比。该函数一般在统计学方面用到的比较频繁,而且输出结果也很人性化。

Matlab元素个数统计函数tabulate

tabulate用法

先来一段官方介绍吧,大意上跟我的解释差不多。

>> help tabulate
 tabulate Frequency table.
    TABLE = tabulate(X) takes a vector X and returns a matrix, TABLE.
    The first column of TABLE contains the unique values of X.  The
    second is the number of instances of each value.  The last column
    contains the percentage of each value.  If the elements of X are
    non-negative integers, then the output includes 0 counts for any
    integers that are between 1 and max(X) but do not appear in X.
 
    TABLE = tabulate(X), where X is a categorical variable, character
    array, or a cell array of strings, returns TABLE as a cell array.  The
    first column contains the unique string values in X, and the other two
    columns are as above.
 
    tabulate with no output arguments returns a formatted table
    in the command window.

实例演示

下面我们在展现几组数据的输出结果吧:

>> x=[1 2 3 1 2 4 5 6 8]
x =
     1     2     3     1     2     4     5     6     8
>> tabulate(x)
  Value    Count   Percent
      1        2     22.22%
      2        2     22.22%
      3        1     11.11%
      4        1     11.11%
      5        1     11.11%
      6        1     11.11%
      7        0      0.00%
      8        1     11.11%

上面这组,输入的是1到8之间的自然数,他直接输出了1到8之间所有数字的统计次数(包含7)

>> x=[4 5 4 7 10]
x =
     4     5     4     7    10
>> tabulate(x)
  Value    Count   Percent
      1        0      0.00%
      2        0      0.00%
      3        0      0.00%
      4        2     40.00%
      5        1     20.00%
      6        0      0.00%
      7        1     20.00%
      8        0      0.00%
      9        0      0.00%
     10        1     20.00%

上面这组,输入的是4到10之间的自然数,他直接输出了1到10之间所有数字的统计次数(包含未出现的数字)。可以看出它输出的是1到最大数字之间所有自然数的统计结果。

>> x=[-1 -1 1 2 1 0 3]
x =
    -1    -1     1     2     1     0     3
>> tabulate(x)
  Value    Count   Percent
     -1        2     28.57%
      0        1     14.29%
      1        2     28.57%
      2        1     14.29%
      3        1     14.29%

数组中出现了-1,结果为-1到最大值之间的所有数据统计。

>> x=[-1 -1 1.1 1.1 2 2.2 3 10]
x =
   -1.0000   -1.0000    1.1000    1.1000    2.0000    2.2000    3.0000   10.0000
>> tabulate(x)
  Value    Count   Percent
     -1        2     25.00%
    1.1        2     25.00%
      2        1     12.50%
    2.2        1     12.50%
      3        1     12.50%
     10        1     12.50%

出现了小数,直接统计给定数组中出现数字的统计结果。

最后,你可以把tabulate(x)值赋值给y,然后第一列,第二列作图即可绘制直方图,统计更加直观;y(:,1)、y(:,2)分别代表第一列、第二列数值,即分别为元素及元素出现次数。

共计人评分,平均

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

原创文章,作者:古哥,如若转载,请注明出处:https://iymark.com/program/matlab-function-tabulate.html

发表评论

登录后才能评论
分享本页
返回顶部