Matlab讀取excel并利用拉依達準則篩選數(shù)據(jù)的全過程
1、Matlab讀取Excel表格
版本:matlab R2020a,Excel2019的xlsx格式文件
1.1 導入數(shù)據(jù)

1.2 選擇并打開要導入的.xlsx文件

1.3 選擇數(shù)據(jù)區(qū)域,選擇輸出到matlab工作區(qū)的數(shù)據(jù)類型

默認剛導入時自動選擇了所有數(shù)據(jù)區(qū)域(不帶title的)
這里以輸出為二維矩陣為例
1.4 導入成功,在工作區(qū)域命名變量名并在命令行測試輸出

1.5 使用命令導入,效果一樣
mat= xlsread('附錄1 目標客戶體驗數(shù)據(jù).xlsx','sheet1','A2:AB1961')
2、使用拉依達準則對數(shù)據(jù)進行篩選
2.1 什么是拉依達準則?
拉依達準則是指先假設一組檢測數(shù)據(jù)只含有隨機誤差,對其進行計算處理得到標準偏差,按一定概率確定一個區(qū)間,認為凡超過這個區(qū)間的誤差,就不屬于隨機誤差而是粗大誤差,含有該誤差的數(shù)據(jù)應予以剔除。這種判別處理原理及方法僅局限于對正態(tài)或近似正態(tài)分布的樣本數(shù)據(jù)處理,它是以測量次數(shù)充分大為前提的。

所以也叫 3 σ 3\sigma 3σ準則。
2.2 根據(jù)拉依達準則用matlab對數(shù)據(jù)進行異常值篩選
clear
clc
%% 根據(jù)拉依達準則對二維數(shù)據(jù)進行篩選
mat= xlsread('附錄1 目標客戶體驗數(shù)據(jù).xlsx','data','A2:AB1961'); %讀取數(shù)據(jù)
% 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),'列,出現(xiàn)不滿足拉依達準則的數(shù)據(jù),數(shù)據(jù)id為:'])
data_id=mat(i,1) %%如果以actxserver讀取的話,這里可以設置excel中單元格格式
mat(i,j)=-1;%% 這里用數(shù)據(jù)中沒出現(xiàn)過的-1來替代待剔除的值
else
continue;
end
end
end
不符合條件的數(shù)值均用-1標記,然后對這些數(shù)據(jù)所在行進行刪除即可。
附:用matlab實現(xiàn)對Excel交互的鏈接:http://www.fzitv.net/article/219448.htm
總結
到此這篇關于Matlab讀取excel并利用拉依達準則篩選數(shù)據(jù)的文章就介紹到這了,更多相關Matlab讀取excel并篩選數(shù)據(jù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
完美解決pyinstaller打包報錯找不到依賴pypiwin32或pywin32-ctypes的錯誤
這篇文章主要介紹了完美解決pyinstaller打包報錯找不到依賴pypiwin32或pywin32-ctypes的錯誤,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04
使用Pandas實現(xiàn)高效讀取篩選csv數(shù)據(jù)
在數(shù)據(jù)分析和數(shù)據(jù)科學領域中,Pandas?是?Python?中最常用的庫之一,本文將介紹如何使用?Pandas?來讀取和處理?CSV?格式的數(shù)據(jù)文件,希望對大家有所幫助2024-04-04

