MATLAB的数据统计处理基础
最近需要对实验测量的数据进行一些简单的统计分析,写了一个基础的MATLAB。
MATLAB数据处理基础函数
函数 | 功能 | 输入 | 输出 |
---|---|---|---|
mean(x) | 均值 | 原始数据向量 | 平均值 |
median(x) | 中位数 | 原始数据向量 | 中位数 |
range(x) | 极差 | 原始数据向量 | 极差 |
std(x) | 标准差 | 原始数据向量 | 标准差 |
var(x) | 方差 | 原始数据向量 | 方差 |
[n,y] = hist(x,k) | 频数表 | 原始数据向量x & 等分区间数k | 频数行向量n & 区间中点行向量y |
histogram(x) | 频数直方图 | 原始数据向量x & 等分区间数k | 直方图 |
MATLAB代码
代码每一行的作用具体写在了注释里。
%%%%%%%%%%%%%%% 初始化部分 %%%%%%%%%%%%%%%%%%%%%
% 关闭所有图表,清除工作区原本数据
close all;
clear all;
%%%%%%%%%%%%%%% 读取选择数据部分 %%%%%%%%%%%%%%%
% 数据读取,这里是从excel表格里面读取数据全部数据
data_all = xlsread('C:\Users\2021\Desktop\2022-4-17数据统计.xlsx',2);
% 选择需要统计的数据范围,笔者需要处理的数据范围为第2列第4行及之后的数据
% 可以根据需要在此处作出更改
data = data_all(:,2);
data_length = length(data);
data = data(4:data_length,:);
% 找到数据中存在的Nan的序号
data_nan_num = find(isnan(data));
% 去除Nan,便于后续数据统计
data(data_nan_num) = [];
%%%%%%%%%%%%%%% 统计分析部分 %%%%%%%%%%%%%%%%%%%
% 统计数据个数
data_num = length(data);
% 最大值
data_max = max(data);
% 最小值
data_min = min(data);
% 平均值
data_mean = mean(data);
% 中位数
data_median = median(data);
% 极差
data_range = range(data);
% 标准差
data_std = std(data);
% 方差
data_var = var(data);
% 频数表
[data_n,data_y] = hist(data,30);
% 绘制直方图
figure(1)
histogram(data,30)
title('直方图')
xlabel('统计数据')
ylabel('频次')
%%%%%%%%%%%%%%% 写入excel表格保存部分 %%%%%%%%%%%%%%%%%%%
% 数据整理
data_save = ["数据个数",data_num ; "最大值",data_max ; "最小值",data_min ; "平均值",data_mean ;
"中位数",data_median; "极差",data_range ; "标准差 ",data_std ; "方差",data_var]
% 写入excel表格的函数xlswrite(filename,A,sheet,xlRange)
% 写入matlab运行当前文件夹下,文件名data_process.xlsx,存入数据data_save,写在sheet1中,从A1开始写
xlswrite('data_process.xlsx',data_save,1)
% 保存直方图至当前文件夹下,名为"直方图.png"
% 获取当前图像框
h1=gcf ;
% 保存图像
saveas(h1, ['直方图 ','.png']);