垃圾一樣的數據,含淚也要處理完呀~Matlab讓你提高數據處理效率!

點擊藍字

關注我們


做實驗前信心滿滿,實驗設計非常棒,有必要的還搞點兒正交實驗設計;

做實驗時,滿懷激情

做完實驗,卻看到垃圾一樣的數據,預期有差距,或者和有的波動大,哎,可是含淚也要處理完呀!

垃圾一樣的數據,含淚也要處理完呀~Matlab讓你提高數據處理效率!的圖1

最近在處理老師安排的地鐵車站基坑監測數據,幾千組的數據分析,Excel肯定是菜雞,今天給大家介紹Matlab里面的批量處理,其中最重要的就是dir函數。


dir函數


dir函數可以獲得指定文件夾下的所有子文件夾和文件,并存放在一個文件結構的數組中,

主要內容有name(文件名)、date(修改日期)、bytes(文件大?。?、isdir(目錄是1,不是為0)、datenum (matlab中特定的修改日期)。這個數組各結構體內容是什么樣子的呢,下面一張圖看的更清楚!

垃圾一樣的數據,含淚也要處理完呀~Matlab讓你提高數據處理效率!的圖2

dir ( ' . ' ) %列出當前目錄下的所有子文件夾和子文件

dir ( ' G:\Matlab ')% 列出指定目錄下的所有子文件夾和文件

dir( ' *.m' )%列出當前目錄后綴是.m文件的所有文件

下面介紹通過dir函數獲取目錄下的所有Excel文件


dirs=dir('此處為路徑\*.xlsx'); %讀取路徑下的指定類型文件列表,返回結構數組,此處我需要的Excel表格,所以后綴是xlsx,也可以是其他后綴名喔。

dircell=struct2cell(dirs)'; % 將結構體轉換成元胞數組,轉置讓文件名按列排列。

filenames={dirs.name}; %取出文件名+后綴

文件名存儲好之后,就可以用for循環結合xlsread函數讀取每個Excel表格的數據,進行批量的處理操作啦!

for i=1:length(filenames)

Data=xlsread(filenames,'sheet1');

……

end


曲線擬合


在數據處理時,通常我們都是需要先濾波,再用指定函數擬合,得到光滑曲線。至于濾波不過多介紹啦,需要結合具體專業采用具體的方法,matlab里面也有專門的濾波函數。

下面主要介紹一下Matlab里面的擬合。

首先必須要知道的就是擬合工具箱,在命令行輸入cftool(x,y)即可調用,下面來看一下效果。

垃圾一樣的數據,含淚也要處理完呀~Matlab讓你提高數據處理效率!的圖3

點擊File-Generate Code即可生成當前擬合函數,保存后(命名默認)就可以通過調用該函數來批量擬合多組數據啦!


如何返回擬合函數值呢


舉個例子,我用傅里葉逼近擬合,如何調用函數,并且求指定自變量對應的數值呢?利用下面函數就可以調用啦!


fuliye=createFit(x,y);%調用保存好的createFit函數,傅里葉逼近擬合

curve=feval(fuliye,[2:1:10]);%feval可以求自變量[2:1:10],對應的因變量輸出值啦


如何判斷擬合效果呢


首先需要熟悉一個概念。

最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找數據的最佳函數匹配。利用最小二乘法可以簡便地求得未知的數據并使得這些求得的數據與實際數據之間誤差的平方和為最小。

那么對于任意的x值,就會有一個實際值y和一個擬合值y’,那么對于所有的x值,最小二乘的就是求解下面公式的最小值:

垃圾一樣的數據,含淚也要處理完呀~Matlab讓你提高數據處理效率!的圖4

比如用一次函數y=ax+b來擬合,系數a、b的值就要通過不斷計算,使得誤差的平方和最小來確定。



如果你已知數據趨勢,例如低碳鋼拉伸曲線,或者擬合工具箱里的基本函數已經不能滿足需求,也可以自定義曲線函數來擬合數據噠,我給大家提供一個算例,關注公眾號,后臺回復“擬合”,即可領取啦!


垃圾一樣的數據,含淚也要處理完呀~Matlab讓你提高數據處理效率!的圖5
垃圾一樣的數據,含淚也要處理完呀~Matlab讓你提高數據處理效率!的圖6

上面是我處理后的兩張基坑排樁變形圖象呢,有人覺得這樣圖很丑,那就對了。畢導也說過:學術界是一個以丑為美的領域,沒有那么多的花里胡哨啦!學術圖表配色原則和理工男穿衣搭配原則是類似的

當然數據處理是為了總結規律,切不可為了強湊規律而偽造數據,畢竟我們要尊重科學!

關注公眾號,后臺回復“擬合”,即可領取自定義函數擬合m文件啦!


垃圾一樣的數據,含淚也要處理完呀~Matlab讓你提高數據處理效率!的圖7

掃描二維碼 關注我們

微信號 : Superyang_C

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

12
2
10