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

一、需求描述

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

二、程序讲解

第一步:选择excel文件;

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

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

Matlab 复制代码
data = xlsread(filePath);

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

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

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

Matlab 复制代码
frequencies = counts / length(data);                 % 计算数字出现的频率

第五步:汇总结果。

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

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

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

第七步:输入表头;

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

第八步:输入统计数据。

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

三、所有程序

Matlab 复制代码
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); % 写入数据

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

相关推荐
CodeToGym32 分钟前
【Java 办公自动化】Apache POI 入门:手把手教你实现 Excel 导入与导出
java·apache·excel
民乐团扒谱机8 小时前
【微实验】机器学习之集成学习 GBDT和XGBoost 附 matlab仿真代码 复制即可运行
人工智能·机器学习·matlab·集成学习·xgboost·gbdt·梯度提升树
Evand J8 小时前
TDOA(到达时间差)的GDOP和CRLB计算的MATLAB例程,论文复现,附参考文献。GDOP:几何精度因子&CRLB:克拉美罗下界
开发语言·matlab·tdoa·crlb·gdop
机器学习之心HML11 小时前
MATLAB豆渣发酵工艺优化 - 基于响应面法结合遗传算法
matlab
qq_2975746711 小时前
【实战】POI 实现 Excel 多级表头导出(含合并单元格完整方案)
java·spring boot·后端·excel
aini_lovee1 天前
MATLAB基于小波技术的图像融合实现
开发语言·人工智能·matlab
3GPP仿真实验室1 天前
【Matlab源码】6G候选波形:OFDM-IM 增强仿真平台 DM、CI
开发语言·matlab·ci/cd
rit84324991 天前
MATLAB中Teager能量算子提取与解调信号的实现
开发语言·matlab
我找到地球的支点啦1 天前
通信扩展——扩频技术(超级详细,附带Matlab代码)
开发语言·matlab
Dev7z2 天前
基于 MATLAB 的铣削切削力建模与仿真
开发语言·matlab