当前位置: 首页 > news >正文

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

一、需求描述

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

二、程序讲解

第一步:选择excel文件;

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

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

data = xlsread(filePath);

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

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

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

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

第五步:汇总结果。

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

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

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

第七步:输入表头;

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

第八步:输入统计数据。

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

三、所有程序

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

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

http://www.lryc.cn/news/186912.html

相关文章:

  • 近期分享学习心得3
  • 前端uniapp如何修改下拉框uni-data-select下面的uni-icons插件自带的图片【修改uniapp自带源码图片/图标】
  • 【计算机基础】Git系列3:常用操作
  • 有哪些值得推荐的Java 练手项目?
  • 【Godot】时间线(技能)节点
  • 每日练习-9
  • 微信小程序 -- 页面间通信
  • 关于Jupyter markdown的使用
  • 【C语言】字符函数和内存操作函数
  • SpringBoot大文件上传实现分片、断点续传
  • React 注意事项
  • 常见排序算法Java版(待续)
  • Jmeter 多实例压测
  • 线程安全问题 --- 内存可见性问题
  • 消息队列 Kafka
  • 抽象轻松的java-mybatis简单入门
  • 012-第二代硬件选型
  • Spring中的设计模式
  • 软考 系统架构设计师系列知识点之软件质量属性(1)
  • GPT系列论文解读:GPT-1
  • 数学分析:含参变量的积分
  • 关于一篇ElementUI之CUD+表单验证
  • VUE模板编译的实现原理
  • 基础算法之——【动态规划之路径问题】1
  • 三十三、【进阶】索引的分类
  • VBox启动失败、Genymotion启动失败、Vagrant迁移
  • 一篇短小精悍的文章让你彻底明白KMP算法中next数组的原理
  • CSS盒子定位的扩张
  • SpringBoot整合POI实现Excel文件读写操作
  • 从零开始的力扣刷题记录-第八十七天