Matlab 统计数组中各数字(元素)出现的次数 | 您所在的位置:网站首页 › 字符串中每个字符出现次数 › 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]复制代码
|
CopyRight 2018-2019 实验室设备网 版权所有 |