• 基于matlab统计Excel文件一列数据中每个数字出现的频次和频率


    一、需求描述

    如上表所示,在excel文件中,有一列数,统计出该列数中,每个数出现的次数和频率。最后,将统计结果输出到新的excel文件中。

    二、程序讲解

    第一步:选择excel文件;

    1. [Filename, Pathname] = uigetfile('*.xls', '选择所用的雷达数据'); % 获取文件名和路径根据情况,更改为现有的excel后缀名
    2. filePath=[Pathname Filename]; % 存储文件路径

    第二步:读取excel文件中的一列数据;

    data = xlsread(filePath);

    第三步统计出现的数字次数;

    [counts, edges] = histcounts(data);                   % counts 统计出现的数字次数

    第四步:计算数字出现的频率;

    frequencies = counts / length(data);                 % 计算数字出现的频率

    第五步:汇总结果。

    1. values = (edges(1:end-1) + edges(2:end)) / 2; % 数据数值出现区间
    2. result = [values; counts;frequencies]'; % 汇总统计结果

    第六步:创建存储excel文件的文件夹;

    1. folder='ExcelFiles'; % 文件夹名称
    2. if exist(folder,'dir')==0 % 判断站点文件夹是否已经存在
    3. mkdir(folder); % 不存在,则创建该文件夹
    4. end
    5. Datestr=['.\ExcelFiles\','数据统计结果.xls']; % 存储汇总统计结果的路径及文件名

    第七步:输入表头;

    1. T1 =table({'原数据'},{'出现频次'},{'出现频率'}); % 表头名称
    2. writetable(T1,Datestr,'Sheet','1','Range','A1:C1','WriteVariableNames', false); % 写入表头

    第八步:输入统计数据。

    1. T2 = table(result); % 统计结果
    2. RangeNum=['A2:C',num2str(length(data)+1)]; % 确定数据写入区域
    3. writetable(T2,Datestr,'Sheet','1','Range',RangeNum, 'WriteVariableNames', false); % 写入数据

    三、所有程序

    1. clear all; close all; clc;
    2. %% 选取excel文件
    3. [Filename, Pathname] = uigetfile('*.xls', '选择所用的雷达数据'); % 获取文件名和路径根据情况,更改为现有的excel后缀名
    4. filePath=[Pathname Filename]; % 存储文件路径
    5. data = xlsread(filePath);
    6. [counts, edges] = histcounts(data); % counts 统计出现的数字次数
    7. frequencies = counts / length(data); % 计算数字出现的频率
    8. values = (edges(1:end-1) + edges(2:end)) / 2; % 数据数值出现区间
    9. result = [values; counts;frequencies]'; % 汇总统计结果
    10. %% 将统计结果存储到excel文件中
    11. folder='ExcelFiles'; % 文件夹名称
    12. if exist(folder,'dir')==0 % 判断站点文件夹是否已经存在
    13. mkdir(folder); % 不存在,则创建该文件夹
    14. end
    15. Datestr=['.\ExcelFiles\','数据统计结果.xls']; % 存储汇总统计结果的路径及文件名
    16. % 输入表头
    17. T1 =table({'原数据'},{'出现频次'},{'出现频率'}); % 表头名称
    18. writetable(T1,Datestr,'Sheet','1','Range','A1:C1','WriteVariableNames', false); % 写入表头
    19. % 输入统计数据
    20. T2 = table(result); % 统计结果
    21. RangeNum=['A2:C',num2str(length(data)+1)]; % 确定数据写入区域
    22. writetable(T2,Datestr,'Sheet','1','Range',RangeNum, 'WriteVariableNames', false); % 写入数据

    运行后,输出的结果,如下表所示:

  • 相关阅读:
    Flink技术简介与入门实践
    【LLM之RAG】KG_RAG论文阅读笔记
    分布式事务解决方案
    GBase 8c 数据库审计概述(三)
    VirtualBox中安装MacOS Big Sur
    在全志R128上启用USB ADB以及无线ADB配置方法
    第九章《字符串》第2节:字符串常用操作
    SpringBoot项目中新增脱敏功能
    1-7Vmware中的快照与克隆
    Java基础单元测试
  • 原文地址:https://blog.csdn.net/weixin_45770896/article/details/133720143