基于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); % 写入数据

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

相关推荐
KWTXX8 小时前
测试工具-论文 MATLAB 仿真复现【成功】
开发语言·matlab
jllllyuz9 小时前
MATLAB实现滚动轴承故障诊断(外圈故障)
开发语言·人工智能·matlab
chatexcel9 小时前
ChatExcel MAX 教程:AI Excel 数据清洗、异常核查与分析报告生成
人工智能·excel
葡萄城技术团队10 小时前
模拟运算表全解析:从 Excel 的两变量限制到 SpreadJS 的不限变量 | SpreadJS 新版本 特性解析
excel
slandarer11 小时前
MATLAB | 韦恩图的高阶版: UpSet图 更新升级啦!
开发语言·matlab
hoiii18712 小时前
C# Txt/Excel/Access 导入导出工具
开发语言·c#·excel
小当家.10513 小时前
Excel AI Converter:用 大模型 自动转换excel表格格式
人工智能·excel·工具
2501_9307077813 小时前
使用 C# 在 Excel 中合并并居中单元格
开发语言·c#·excel
南檐巷上学13 小时前
基于改进型CNN神经网络的车牌定位识别系统(Matlab)
人工智能·神经网络·matlab·cnn·车牌识别·vgg
cici1587413 小时前
基于Matlab的数字全息相位展开及再现实现
开发语言·matlab