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统计 频数、频率和累积频率相关推荐

  1. Matlab计算状态转移频数,matlab统计频数

    统计数据的描述性分析一.实验目的 熟悉在 matlab 中实现数据的统计描述方法, 掌握基本统计命令: 样本均值.样本中位数.样本标准差.样本方差.概率密度函数 pdf....... 解 1.数据输入 ...

  2. matlab 统计数组频数_matlab统计 频数、频率和累积频率

    matlab 统计 频数.频率和累积频率 (2011-03-30 21:03:26) function result = HistRate(x) %   HistRate(x) , 统计数组 x 中的 ...

  3. matlab 统计数组频数_利用MATLAB进行频率分析(统计数组中元素个数)

    在日常计算,工作中使用MATLAB经常会遇到这样的一个问题:如何统计数组中各数字(元素)出现的频数.频率和累积频率?本文就按照案例演示的方式做一个总结. 第一种方法:调用MATLAB自带的函数tabu ...

  4. Matlab 统计数组中各元素出现的频数、频率

    如何统计一个数组中各数字(元素)出现的频数.频率和累积频率?这里以案例形式做一个总结. 第一种方法:调用MATLAB自带的函数tabulate统计一个数组中各数字(元素)出现的频数.频率 [例1]统计 ...

  5. MATLAB 数据频数统计

    1. 利用find函数对特定区间进行统计 x = 0:10; % 生成数组 k1 = find( x >= 0 & x < 2 ); % 查找大于等于0小于2的元素的数组下标 k2 ...

  6. Matlab 统计数组中各数字(元素)出现的次数

    如何统计一个数组中各数字(元素)出现的频数.频率和累积频率?这里以案例形式做一个总结. 第一种方法:调用MATLAB自带的函数tabulate统计一个数组中各数字(元素)出现的频数.频率 [例1]统计 ...

  7. matlab 数值解 期权顶级啊,潮盈期权院高胜率交易技巧系列之二----期权交易策略及基于MATLAB统计套利介绍...

    主题: 高胜率交易技巧系列之二----期权交易策略及基于MATLAB统计套利介绍 会场流程: 13:30--14:00:参会嘉宾到场签名 14:00--14:45:期权知识 14:45--15:·25 ...

  8. Matlab统计图片中不同颜色小球个数

    文章目录 Matlab统计图片中不同颜色小球个数 Matlab代码 运行结果 设计算法对不同颜色小球个数进行统计 读取照片进行预处理 如何精确找出各个小球位置 确定小球位置代码 如何通过计算机识别不同 ...

  9. matlab 统计基本函数 var方差

    matlab 统计基本函数 var方差 matlab中的方差函数var的用法及具体分析: 首先我们应该清楚的区分两个概念,即方差和样本方差的无偏估计, 简要来说就是,方差公式中分母上是N,而样本方差无 ...

最新文章

  1. 路由器配置与管理完全手册(Cisco篇)学习感想
  2. rocketmq 顺序消费_必须先理解的RocketMQ入门手册,才能再次深入解读
  3. Android快速开发框架-ZBLibrary 源码分享
  4. 每天一道LeetCode-----逆序链表
  5. PAT (Basic Level) 1050 螺旋矩阵(模拟)
  6. UITableView 界面小实例
  7. QML笔记-键盘事件中同时响应onDigitXXPressed与onPressed
  8. Ubuntu环境搭建支持设备树,内核和根文件系统启动
  9. java拼装树_java 数据拼装成树结构
  10. 大屏数据可视化源码_数据可视化大屏快速入门
  11. [Hbase]Hbase常用的优化方法
  12. ssm连接mysql引入外部配置文件username无法被正确解析
  13. Vbs脚本编程简明教程
  14. c#网络通信框架networkcomms内核解析之六 处理接收到的二进制数据
  15. mysql修改information_schema表时的错误
  16. Java简单端口扫描器
  17. 软件人才从这里飞翔——访北京大学软件学院院长陈钟博士
  18. 如何快速梳理领域文献
  19. epic如何修改着色器缓存路径
  20. 实战 SQL:销售数据的小计/合计/总计以及数据透视表

热门文章

  1. revit对齐命令选不中_Revit对齐命令的应用方法:关于Revit中模型填充图案线与门窗构建对齐及标注的方法...
  2. android one指纹解锁,三款小米新机正秘密研发:含Android One型号、均搭载屏幕指纹...
  3. ACCESS实例2 资料管理4——资料管理的报表
  4. 论文学习笔记 CatBoost: unbiased boosting with categorical features
  5. MySQL数据库(11):数据类型-enum 枚举类型
  6. LINUX C++语法疑问记录
  7. python 切割和拼接图片
  8. html自动识别密码,HTML登录表单:提供用户名,自动填写密码
  9. 15款针对Bootstrap框架的开发工具
  10. 【Mac使用系列】【转载】十几个Mac实用工具