Matlab 統計陣列中各數字(元素)出現的次數
如何統計一個陣列中各數字(元素)出現的頻數、頻率和累積頻率?這裡以案例形式做一個總結。
第一種方法:呼叫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%
複製程式碼
第二種方法:自編效率更高的函式HistRate(程式碼如下),呼叫HistRate函式統計一個陣列中各數字(元素)出現的頻數、頻率和累積頻率。
函式HistRate的程式碼:
MargieSmiley,如果您要檢視本帖隱藏內容請回覆
【例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];
- >> HistRate(x)
- 取值 頻數 頻率 累積頻率
- 0 1 1.96% 1.96%
- 1 4 7.84% 9.80%
- 2 14 27.45% 37.25%
- 3 10 19.61% 56.86%
- 4 10 19.61% 76.47%
- 5 6 11.76% 88.24%
- 6 4 7.84% 96.08%
- 7 1 1.96% 98.04%
- 8 1 1.96% 100.00%
複製程式碼
【例2】統計字串中各字元出現的頻數、頻率和累積頻率。
- >> x = ['If x is a numeric array, TABLE is a numeric matrix.']';
- >> HistRate(x)
- ans =
- '取值' '頻數' '頻率(%)' '累積頻率(%)'
- 'I' [ 1] [ 2.4390] [ 2.4390]
- 'f' [ 1] [ 2.4390] [ 4.8780]
- 'x' [ 2] [ 4.8780] [ 9.7561]
- 'i' [ 5] [12.1951] [ 21.9512]
- 's' [ 2] [ 4.8780] [ 26.8293]
- 'a' [ 5] [12.1951] [ 39.0244]
- 'n' [ 2] [ 4.8780] [ 43.9024]
- 'u' [ 2] [ 4.8780] [ 48.7805]
- 'm' [ 3] [ 7.3171] [ 56.0976]
- 'e' [ 2] [ 4.8780] [ 60.9756]
- 'r' [ 5] [12.1951] [ 73.1707]
- 'c' [ 2] [ 4.8780] [ 78.0488]
- 'y' [ 1] [ 2.4390] [ 80.4878]
- ',' [ 1] [ 2.4390] [ 82.9268]
- 'T' [ 1] [ 2.4390] [ 85.3659]
- 'A' [ 1] [ 2.4390] [ 87.8049]
- 'B' [ 1] [ 2.4390] [ 90.2439]
- 'L' [ 1] [ 2.4390] [ 92.6829]
- 'E' [ 1] [ 2.4390] [ 95.1220]
- 't' [ 1] [ 2.4390] [ 97.5610]
- '.' [ 1] [ 2.4390] [ 100]
複製程式碼
【例3】統計字元型陣列中各行元素出現的頻數、頻率和累積頻率。
- >> x = ['崔家峰';'孫乃喆';'安立群';'王洪武';'王玉傑';'高純靜';'崔家峰';
- '葉鵬';'關澤滿';'謝中華';'王巨集志';'孫乃喆';'崔家峰';'謝中華'];
- >> HistRate(x)
- ans =
- '取值' '頻數' '頻率(%)' '累積頻率(%)'
- '崔家峰' [ 3] [21.4286] [ 21.4286]
- '孫乃喆' [ 2] [14.2857] [ 35.7143]
- '安立群' [ 1] [ 7.1429] [ 42.8571]
- '王洪武' [ 1] [ 7.1429] [ 50]
- '王玉傑' [ 1] [ 7.1429] [ 57.1429]
- '高純靜' [ 1] [ 7.1429] [ 64.2857]
- '葉鵬' [ 1] [ 7.1429] [ 71.4286]
- '關澤滿' [ 1] [ 7.1429] [ 78.5714]
- '謝中華' [ 2] [14.2857] [ 92.8571]
- '王巨集志' [ 1] [ 7.1429] [ 100]
複製程式碼
【例4】統計字串元胞陣列中各字串出現的頻數、頻率和累積頻率。
- >> x = {'崔家峰';'孫乃喆';'安立群';'王洪武';'王玉傑';'高純靜';'崔家峰';
- '葉鵬';'關澤滿';'謝中華';'王巨集志';'孫乃喆';'崔家峰';'謝中華'};
- >> HistRate(x)
- ans =
- '取值' '頻數' '頻率(%)' '累積頻率(%)'
- '崔家峰' [ 3] [21.4286] [ 21.4286]
- '孫乃喆' [ 2] [14.2857] [ 35.7143]
- '安立群' [ 1] [ 7.1429] [ 42.8571]
- '王洪武' [ 1] [ 7.1429] [ 50]
- '王玉傑' [ 1] [ 7.1429] [ 57.1429]
- '高純靜' [ 1] [ 7.1429] [ 64.2857]
- '葉鵬' [ 1] [ 7.1429] [ 71.4286]
- '關澤滿' [ 1] [ 7.1429] [ 78.5714]
- '謝中華' [ 2] [14.2857] [ 92.8571]
- '王巨集志' [ 1] [ 7.1429] [ 100]
複製程式碼
【例5】統計名義尺度(如性別,職業,產品型號等)陣列中各元素出現的頻數、頻率和累積頻率。
- >> load fisheriris
- >> species = nominal(species);
- >> HistRate(species)
- ans =
- '取值' '頻數' '頻率(%)' '累積頻率(%)'
- 'setosa' [ 50] [33.3333] [ 33.3333]
- 'versicolor' [ 50] [33.3333] [ 66.6667]
- 'virginica' [ 50] [33.3333] [ 100]
複製程式碼
相關文章
- 統計陣列中各數字(元素)出現的次數陣列
- matlab如何統計矩陣各元素的出現次數Matlab矩陣
- Matlab tabulate統計數字出現的次數,如果陣列中出現0Matlab陣列
- 統計陣列元素中每個元素出現的次數陣列
- MATLAB自帶的函式tabulate統計一個陣列中各數字(元素)出現的頻數、頻率Matlab函式陣列
- matlab——統計相同元素出現的次數Matlab
- 陣列中每個陣列元素出現的次數陣列
- js常見演算法(一):陣列去重,打亂陣列,統計陣列各個元素出現的次數, 字串各個字元的出現次數,獲取地址連結的各個引數JS演算法陣列字串字元
- 統計陣列個元素出現的個數陣列
- matlab之對元素出現的次數進行統計Matlab
- 【轉】matlab之對元素出現的次數進行統計Matlab
- 找出陣列中第 k 大的數字及其出現次數陣列
- 找出陣列中只出現一次的數字陣列
- 劍指 Offer 56 - I. 陣列中數字出現的次數陣列
- 計算陣列元素重複的個數,並把出現次數相同的統計一起。陣列
- 找出陣列中元素出現次數超過陣列長度一半的元素陣列
- JZ-040-陣列中只出現一次的數字陣列
- js找出陣列中出現最多的元素和次數JS陣列
- 找到陣列中出現特定次數數字的問題陣列
- JZ-037-數字在排序陣列中出現的次數排序陣列
- 陣列中出現次數超過一半的數字陣列
- 利用HashMap統計字串各個字元出現的次數HashMap字串字元
- 查詢陣列中出現次數大於陣列長度一半的數字陣列
- 48 陣列中出現次數超過一半的數字陣列
- 陣列元素的數量陣列
- 劍指OFFER-數字在升序陣列中出現的次數(Java)陣列Java
- 劍指Offer-39-數字在排序陣列中出現的次數排序陣列
- 在其它數都出現k次的陣列中找到只出現一次的數陣列
- 陣列中重複的數字陣列
- 返回陣列中的最大元素個數陣列
- JZ-028-陣列中出現次數超過一半的數字陣列
- 統計字串出現的次數(C)字串
- JavaScript統計字元出現的次數JavaScript字元
- **呼叫MapReduce對檔案中各個單詞出現的次數進行統計**
- 每日一練(20):陣列中出現次數超過一半的數字陣列
- [PHP] 演算法-陣列重複數字統計的PHP實現PHP演算法陣列
- matlab中如何能統計點出現的頻次呢?Matlab
- 給定一個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列中出現次數大於 ⌊ n/2 ⌋ 的元素。陣列