加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【MATLAB】统计数组中元素个数

(2014-08-30 08:01:36)
标签:

健康

分类: MATLAB
references:
http://www.matlabsky.com/thread-9144-1-1.html

第一种方法:利用tabulate统计数值型数组,有一个弊端是它是从0(或者是1)开始统计到数组的最大值,这个对于最大值上万,但是很少有低端数值的数组统计是很不利。对于这一种可以使用如下代码:
>> A = [1 3 5 3 1 5 3 1 1 3 5];
>>count = hist(A,unique(A))

count =

     4     4     3


第二种方法:调用MATLAB自带的函数tabulate统计一个数组中各数字(元素)出现的频数、频率

【例1】统计数值型数组中各元素出现的频数、频率。
>> x = [2  2  6  5  2  3  2  4  3  4  3  4  4  4  4  2  2
      6  0  4  7  2  5  8  3  1  3  2  5  3  6  2  3  5
      4  3  1  4  2  2  2  3  1  5  2  6  3  4  1  2  5];
>> tabulate(x(:))
  Value    Count   Percent
      0        1      1.96%
      1        4      7.84%
      2       14     27.45%
      3       10     19.61%
      4       10     19.61%
      5        6     11.76%
      6        4      7.84%
      7        1      1.96%
      8        1      1.96%

例2】统计字符串中各字符出现的频数、频率。
>> x = ['If x is a numeric array, TABLE is a numeric matrix.']';
>> tabulate(x)
  Value    Count   Percent
      I        1      2.44%
      f        1      2.44%
      x        2      4.88%
      i        5     12.20%
      s        2      4.88%
      a        5     12.20%
      n        2      4.88%
      u        2      4.88%
      m        3      7.32%
      e        2      4.88%
      r        5     12.20%
      c        2      4.88%
      y        1      2.44%
      ,        1      2.44%
      T        1      2.44%
      A        1      2.44%
      B        1      2.44%
      L        1      2.44%
      E        1      2.44%
      t        1      2.44%
      .        1      2.44%

例3】统计字符型数组中各行元素出现的频数、频率。
>> x = ['崔家峰';'孙乃喆';'安立群';'王洪武';'王玉杰';'高纯静';'崔家峰';
        '叶 鹏';'关泽满';'谢中华';'王**';'孙乃喆';'崔家峰';'谢中华'];
>> tabulate(x)
  Value    Count   Percent
    崔家峰        3     21.43%
    孙乃喆        2     14.29%
    安立群        1      7.14%
    王洪武        1      7.14%
    王玉杰        1      7.14%
    高纯静        1      7.14%
    叶 鹏        1      7.14%
    关泽满        1      7.14%
    谢中华        2     14.29%
    王**        1      7.14%

例4】统计字符串元胞数组中各字符串出现的频数、频率。
>> x = {'崔家峰';'孙乃喆';'安立群';'王洪武';'王玉杰';'高纯静';'崔家峰';
'叶鹏';'关泽满';'谢中华';'王**';'孙乃喆';'崔家峰';'谢中华'};
>> tabulate(x)
  Value    Count   Percent
    崔家峰        3     21.43%
    孙乃喆        2     14.29%
    安立群        1      7.14%
    王洪武        1      7.14%
    王玉杰        1      7.14%
    高纯静        1      7.14%
     叶鹏        1      7.14%
    关泽满        1      7.14%
    谢中华        2     14.29%
    王**        1      7.14%

例5】统计名义尺度(如性别,职业,产品型号等)数组中各元素出现的频数、频率。
>> load fisheriris
>> species = nominal(species);
>> tabulate(species)
       Value    Count   Percent
      setosa       50     33.33%
  versicolor       50     33.33%
   virginica       50     33.33%

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有