統計陣列中各數字(元素)出現的次數

heibaigezi發表於2019-12-25

如何統計一個陣列中各數字(元素)出現的頻數、頻率和累積頻率?這裡以案例形式做一個總結。

轉自Matlab論壇:https://www.ilovematlab.cn/thread-67367-1-1.html

第一種方法:呼叫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%

 

 

 

相關文章