频率分析(统计数组中元素个数)
转载自: http://www.matlabsky.com/thread-9144-1-1.html
在论坛上经常遇到这样的问题:如何统计一个数组中各数字(元素)出现的频数、频率和累积频率?这里以案例形式做一个总结。
第一种方法:调用MATLAB自带的函数tabulate统计一个数组中各数字(元素)出现的频数、频率
>> tabulate(mydata(1,:))
Value Count Percent
0 10 50.00%
1 10 50.00%
>> a=tabulate(mydata(1,:))
a =
0 10 50
1 10 50
【例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的代码:
- function result = HistRate(x)
- % HistRate(x),统计数组 x 中的元素出现的频数、频率和累积频率,以表格形式显示在屏幕上.
- % x可以是数值型数组、字符串、字符型数组、字符串元胞数组和名义尺度数组。
- %
- % result = HistRate(x),返回矩阵或元胞数组result,它是多行4列的矩阵或元胞数组,
- % 四列分别对应取值、频数、频率、累积频率。当x是数值型数组时,result为矩阵;当x
- % 是字符串、字符型数组、字符串元胞数组和名义尺度数组时,result为元胞数组。
- %
- % 用户还可参考tabulate函数,该函数比tabulate函数的效率高。
- %
- % Copyright xiezhh,2010.3.8
- if isnumeric(x)
- x = x(:);
- x = x(~isnan(x));
- xid = [];
- else
- [x,xid] = grp2idx(x);
- x = x(~isnan(x));
- end
- x = sort(x(:)); % 排序
- m = length(x);
- x1 = diff(x); % 求差分
- x1(end + 1) = 1;
- x1 = find(x1);
- CumFreq = x1/m;
- value = x(x1);
- x1 = [0; x1];
- Freq1 = diff(x1);
- Freq2 = Freq1/m;
- if nargout == 0
- if isempty(xid)
- fmt1 = '%11s %8s %6s %6s\n';
- fmt2 = ' %10d %8d %6.2f%% %6.2f%%\n';
- fprintf(1, fmt1, '取值', '频数', '频率', '累积频率');
- fprintf(1, fmt2, [value'; Freq1'; 100*Freq2'; 100*CumFreq']);
- else
- head = {'取值', '频数', '频率(%)', '累积频率(%)'};
- [head;xid,num2cell([Freq1, 100*Freq2, 100*CumFreq])]
- end
- else
- if isempty(xid)
- result = [value Freq1 Freq2 CumFreq];
- else
- result = [xid,num2cell([Freq1, Freq2, CumFreq])];
- end
- end
复制代码
【 例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经常会遇到这样的一个问题:如何统计数组中各数字(元素)出现的频数.频率和累积频率?本文就按照案例演示的方式做一个总结. 第一种方法:调用MATLAB自带的函数tabu ...
- java map 元素个数_Java 小模块之--统计字符串中元素个数
Java 小模块之--统计字符串中元素个数 曾经看过我Stream或者Guava类库等文章的小伙伴应该很明白我这篇博文的意义所在了 一是给读者提供综合的博文入口 二是自己也总结一下思路 ps: 之前没 ...
- python统计列表中元素个数_python中计算一个列表中连续相同的元素个数方法
python中计算一个列表中连续相同的元素个数方法 最简单的例子: a = [1,1,1,1,2,2,2,3,3,1,1,1,3] # 问:计算a中最多有几个连续的1 很明显,答案是4 如果用代码实现 ...
- 中求解数组中元素个数_JavaScript之学underscore在数组中查找指定元素
今天来给大家分享下使用underscore在数组中查找指定元素. 在开发中,我们经常会遇到在数组中查找指定元素的需求,可能大家觉得这个需求过于简单,然而如何优雅的去实现一个 findIndex 和 f ...
- 虎头虎脑的sizeof、strlen、数组长度、数组中元素个数和字符串长度
- 统计频次:统计数组中每种模的频次
统计数组中某个数出现的频率,方法很巧妙,使用下标作为key,使用对应下标的值作为频数,比如一共输入10个数,统计0~9的个数有多少? #include <bits/stdc++.h>usi ...
- hive中统计某列数组的元素个数
hive中统计某列数组的元素个数 可以统计列的数量 SELECT distinct_id,sum(size(split(itemid_list,","))) FROM t_item ...
- JavaScript中统计数组中相同元素的个数-案例
图示说明 代码 //部分数据 ["220","220","220","220","220",&quo ...
- java中的输入语句判断正负_在java中使用方法调用统计数组中正数的个数,将判断数据的正负功能定义成方法...
满意答案 donglin820 推荐于 2018.04.21 public class TestDemo { static int count = 0;// 统计整数的个数 public static ...
最新文章
- 通过构建城市来解释HTML,CSS和JavaScript之间的关系
- C#forUnity快速入门(连载2)-C#语言入门
- G面经prepare: Reorder String to make duplicates not consecutive
- shader 编程入门(一)
- Tensorflow初学者之搭建神经网络基本流程
- 欢乐纪中B组周五模拟赛【2019.3.8】
- linux 管道文件上机总结,[转载]LINUX 管道 fifo 等总结
- 电池和Adapter切换电路改进实验(转)
- 使用LINQ计算基本统计
- Kali虚拟机安装,设置中文等详细教程,Linux最新免镜像版
- 谈谈免费的仓库管理软件
- YouTorrent - 全新的“实时”BT种子搜索站
- 正则表达式在JS中的应用,判断邮箱是否合法
- 2018年最新传智播客黑马WEB前端36期全套视频教程
- 随笔3:有调节的中介示例之 Model 1
- 怎么开qq远程连接服务器,QQ远程协助出现权限问题该怎么处理?不用慌这样保证解决...
- 【微机原理 实验】可编程外围接口芯片8255(4)(硬件-含汇编代码)
- Sklearn标准化和归一化方法汇总(2):Min-Max归一化
- 计算机进行注销后会进入什么状态,请问电脑里注销是什么意思呀
- weblogic控制台相关操作
热门文章
- 抗反射蛾眼结构的严格分析与设计
- 兼容ie[6-9]、火狐、Chrome、opera、maxthon3、360浏览器的js本地图片预览
- gateone服务器安装 基本使用
- Apache RewriteCond RewriteRule 跳转故障解决
- 缺陷管理第三篇:软件缺陷如何管理?
- 非三星手机上不能登录Galaxy wearable解决方法
- 用 Python 编写干净、可测试、高质量的代码
- 被创业公司领导穿小鞋,一怒之下我拿了6个offer,最终跳槽到ebay
- 森林防火巡查app功能说明
- 【bzoj 1966】: [Ahoi2005]VIRUS 病毒检测