Matlab读取excel并利用拉依达准则筛选数据的全过程
目录
- 1、Matlab读取Excel表格
- 1.1 导入数据
- 1.2 选择并打开要导入的.xlsx文件
- 1.3 选择数据区域,选择输出到matlab工作区的数据类型
- 1.4 导入成功,在工作区域命名变量名并在命令行测试输出
- 1.5 使用命令导入,效果一样
- 2、使用拉依达准则对数据进行筛选
- 2.1 什么是拉依达准则?
- 2.2 根据拉依达准则用matlab对数据进行异常值筛选
- 总结
1、Matlab读取Excel表格 版本:matlab R2020a,Excel2019的xlsx格式文件
1.1 导入数据
文章图片
1.2 选择并打开要导入的.xlsx文件
文章图片
1.3 选择数据区域,选择输出到matlab工作区的数据类型
文章图片
默认刚导入时自动选择了所有数据区域(不带title的)
这里以输出为二维矩阵为例
1.4 导入成功,在工作区域命名变量名并在命令行测试输出
文章图片
1.5 使用命令导入,效果一样
mat= xlsread('附录1 目标客户体验数据.xlsx','sheet1','A2:AB1961')
【Matlab读取excel并利用拉依达准则筛选数据的全过程】
2、使用拉依达准则对数据进行筛选
2.1 什么是拉依达准则?
拉依达准则是指先假设一组检测数据只含有随机误差,对其进行计算处理得到标准偏差,按一定概率确定一个区间,认为凡超过这个区间的误差,就不属于随机误差而是粗大误差,含有该误差的数据应予以剔除。这种判别处理原理及方法仅局限于对正态或近似正态分布的样本数据处理,它是以测量次数充分大为前提的。
文章图片
所以也叫 3 σ 3\sigma 3σ准则。
2.2 根据拉依达准则用matlab对数据进行异常值筛选
clearclc%% 根据拉依达准则对二维数据进行筛选mat= xlsread('附录1 目标客户体验数据.xlsx','data','A2:AB1961'); %读取数据% ave_all=[]; % sigma_all=[]; sizes=size(mat); for j=1:sizes(2)ave(j) = mean(mat(:,j)); %mean 求解平均值%ave_all=[ave_all,ave(j)]; sigma(j) = std(mat(:,j)); %求解标准差%sigma_all=[sigma_all,sigma(j)]; for i = 1:sizes(1)if(abs(mat(i:j)-ave(j))>3*sigma(j)); %不符合3σ准则,标记这个元素位置disp(['第',num2str(i),'行','第',num2str(j),'列,出现不满足拉依达准则的数据,数据id为:'])data_id=mat(i,1) %%如果以actxserver读取的话,这里可以设置excel中单元格格式mat(i,j)=-1; %% 这里用数据中没出现过的-1来替代待剔除的值elsecontinue; endendend
不符合条件的数值均用-1标记,然后对这些数据所在行进行删除即可。
附:用matlab实现对Excel交互的链接:https://www.jb51.net/article/219448.htm
总结 到此这篇关于Matlab读取excel并利用拉依达准则筛选数据的文章就介绍到这了,更多相关Matlab读取excel并筛选数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- ExcelPackage读取写入
- Excel|Excel 2013 新增功能之瞬间填充整列数据!
- hough变换检测的matlab程序
- springboot中.yml文件的值无法读取的问题及解决
- Excel基础知识-打印的那些事(上)
- 教你如何做一个好看的表格,excel使用技巧大全
- javascript|vue使用js-xlsx导出excel,可修改格子样式,例如背景颜色、字体大小、列宽等
- vue|vue js-xlsx导入导出excel文件Demo
- 数据库|效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...
- 用c#转换word或excel文档为html文件|用c#转换word或excel文档为html文件,C#实现DataSet内数据转化为Excel和Word文件的通用类完整实例...