如何統計一個數組中各數字(元素)出現的頻數、頻率和累積頻率?這裏以案例形式做一個總結。
轉自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%