matlab统计 频数、频率和累积频率
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 = 's %8s %6s %6sn';
fmt2 = ' d � %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
如何统计一个数组中各数字(元素)出现的频数、频率和累积频率?这里以案例形式做一个总结。
第一种方法:调用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 arr ay , TABLE is a nu meric 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 = 's %8s %6s %6sn';
fmt2 = ' d � %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]
复制代码
行元素出现的频数、频率。
>> 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 中实现数据的统计描述方法, 掌握基本统计命令: 样本均值.样本中位数.样本标准差.样本方差.概率密度函数 pdf....... 解 1.数据输入 ...
- matlab 统计数组频数_matlab统计 频数、频率和累积频率
matlab 统计 频数.频率和累积频率 (2011-03-30 21:03:26) function result = HistRate(x) % HistRate(x) , 统计数组 x 中的 ...
- matlab 统计数组频数_利用MATLAB进行频率分析(统计数组中元素个数)
在日常计算,工作中使用MATLAB经常会遇到这样的一个问题:如何统计数组中各数字(元素)出现的频数.频率和累积频率?本文就按照案例演示的方式做一个总结. 第一种方法:调用MATLAB自带的函数tabu ...
- Matlab 统计数组中各元素出现的频数、频率
如何统计一个数组中各数字(元素)出现的频数.频率和累积频率?这里以案例形式做一个总结. 第一种方法:调用MATLAB自带的函数tabulate统计一个数组中各数字(元素)出现的频数.频率 [例1]统计 ...
- MATLAB 数据频数统计
1. 利用find函数对特定区间进行统计 x = 0:10; % 生成数组 k1 = find( x >= 0 & x < 2 ); % 查找大于等于0小于2的元素的数组下标 k2 ...
- Matlab 统计数组中各数字(元素)出现的次数
如何统计一个数组中各数字(元素)出现的频数.频率和累积频率?这里以案例形式做一个总结. 第一种方法:调用MATLAB自带的函数tabulate统计一个数组中各数字(元素)出现的频数.频率 [例1]统计 ...
- matlab 数值解 期权顶级啊,潮盈期权院高胜率交易技巧系列之二----期权交易策略及基于MATLAB统计套利介绍...
主题: 高胜率交易技巧系列之二----期权交易策略及基于MATLAB统计套利介绍 会场流程: 13:30--14:00:参会嘉宾到场签名 14:00--14:45:期权知识 14:45--15:·25 ...
- Matlab统计图片中不同颜色小球个数
文章目录 Matlab统计图片中不同颜色小球个数 Matlab代码 运行结果 设计算法对不同颜色小球个数进行统计 读取照片进行预处理 如何精确找出各个小球位置 确定小球位置代码 如何通过计算机识别不同 ...
- matlab 统计基本函数 var方差
matlab 统计基本函数 var方差 matlab中的方差函数var的用法及具体分析: 首先我们应该清楚的区分两个概念,即方差和样本方差的无偏估计, 简要来说就是,方差公式中分母上是N,而样本方差无 ...
最新文章
- 路由器配置与管理完全手册(Cisco篇)学习感想
- rocketmq 顺序消费_必须先理解的RocketMQ入门手册,才能再次深入解读
- Android快速开发框架-ZBLibrary 源码分享
- 每天一道LeetCode-----逆序链表
- PAT (Basic Level) 1050 螺旋矩阵(模拟)
- UITableView 界面小实例
- QML笔记-键盘事件中同时响应onDigitXXPressed与onPressed
- Ubuntu环境搭建支持设备树,内核和根文件系统启动
- java拼装树_java 数据拼装成树结构
- 大屏数据可视化源码_数据可视化大屏快速入门
- [Hbase]Hbase常用的优化方法
- ssm连接mysql引入外部配置文件username无法被正确解析
- Vbs脚本编程简明教程
- c#网络通信框架networkcomms内核解析之六 处理接收到的二进制数据
- mysql修改information_schema表时的错误
- Java简单端口扫描器
- 软件人才从这里飞翔——访北京大学软件学院院长陈钟博士
- 如何快速梳理领域文献
- epic如何修改着色器缓存路径
- 实战 SQL:销售数据的小计/合计/总计以及数据透视表
热门文章
- revit对齐命令选不中_Revit对齐命令的应用方法:关于Revit中模型填充图案线与门窗构建对齐及标注的方法...
- android one指纹解锁,三款小米新机正秘密研发:含Android One型号、均搭载屏幕指纹...
- ACCESS实例2 资料管理4——资料管理的报表
- 论文学习笔记 CatBoost: unbiased boosting with categorical features
- MySQL数据库(11):数据类型-enum 枚举类型
- LINUX C++语法疑问记录
- python 切割和拼接图片
- html自动识别密码,HTML登录表单:提供用户名,自动填写密码
- 15款针对Bootstrap框架的开发工具
- 【Mac使用系列】【转载】十几个Mac实用工具