matlab xlsread参数_利用MATLAB批量完成科研数据处理
利用常用軟件批量完成科研數據處理
tags:
- MATLAB
- 科研軟件
相信平時大家都有這種時候,測了一大堆數據,也知道該怎么去處理,但是樣品很多,數據量很大,然后對于每個樣品去處理的時候都得用軟件進行重復的處理,才能得出有效的信息。這樣不僅工作量相當大,自己也會感到非常厭煩。一般我碰到這種時候是不能忍的,所以就通過手頭能用到的東西,簡化了工作。今天就給大家介紹一下我自己的解決辦法。
首先我們看一下我們要處理的數據內容,是一堆excel文件,而excel文件里面的數據是儀器的的測試數據。
首先我們要做的就是把數據讀取出來,這里會用到MATLAB里的幾個函數,首先是dir函數,此函數的作用是獲取特定地址文件夾中的文件列表。用法如下:
path='D:my_datatest dataIV data20171116' %此處文件地址改為需要的文件夾路徑 Files = dir(strcat(path,'*.xlsx'));其中Files是我們命名的變量,而path是文件夾的地址,strcat是橫向連接字符的函數,這樣相當于是把文件列表中的每個xlsx文件的地址和名稱獲取了,然后存到了一個數組中,數組名為Files。
然后,我們需要知道這個數組的長度,所以應用length函數獲取數組長度
接下來就是對每一個文件讀取其中的數據,并且將其存到一個與原始數據大小一致的二維矩陣中。
for i = 1:LengthFilesxls_data = xlsread(strcat(path,Files(i).name));file_name=Files(i).name;[m,n]=size(xls_data); end上面代碼中應用循環結構,對每個文件都采用數據讀取函數,MATLAB中excel文件的讀取函數是xlsread,其用法與dir函數類似,都需要strcat函數來對文件的地址和名稱連接,然后作為函數的參數。最后的[m,n]是用于獲取每個文件的數據的大小,其中m是數據的行數,n是數據的列數。
到這里我還只是獲取文件的數據和文件的地址,名字而已。未對數據做出任何處理。下面我們以畫圖為例,展示批量處理數據然后每個數據輸出圖片。這里我的每個文件數據中還有很多列有用的,相當于每個文件中又有單獨的幾個器件的數據。這樣我還需要一層循環結構:
這里大家可以自行修改,比如我的文件里面還有獨立的組,那我就還需要一層循環,但是如果你的文件里只有一組數據,那你就不需要在加一層循環。
我這里是每三列數據為一組,所以我這里循環的步長是j=3:3:n-1,但是其實你也可以根據自己的來定。還有我的數據測試了之后會在零點處有一點漂移,所以我對每一組數據都會獲取零點處的漂移量,然后將整體的數據都平移,使得零點歸零。
還有一些對圖片屬性設置的,比如我把圖片的彈框設置為不可見,這樣在循環過程中畫圖的時候就不會彈框,不然MATLAB是默認會彈框的,其實我們這種畫圖的方法其實是調用MATLAB本身的畫圖函數,然后遍歷每個文件的每組數據,將其畫圖,然后將畫出的圖保存到指定的地址。所以上面關于圖片的屬性其實都可以在保存圖片之前進行修改設定。像我上面的情形就是對圖片設置了一下,首先對y軸的變量值進行了絕對值處理,然后對y軸取對數,相當于圖片中y軸顯示為對數坐標的模式。然后我還設定了一下坐標的范圍,這些都是可以設定,大家也可以去搜索命令,對圖片進行自己需要的參數設定。
最后,是代碼整體的效果。測試可行的結果以下面的代碼為準!
補充:這里補充一個我數據結構截圖,因為后臺有不少朋友問具體的細節。但是其實我已經說明了,不同的數據結構上述代碼肯定是不能直接套用的,必須理解了你自己的數據結構,然后按照上述方法去設計自己的代碼,才能設計出來適合你自己的程序。如果實在是需要我數據源文件的朋友,可以私信我領取。
本代碼處理的數據的結構以上代碼均為原創,轉載請告知。
另外,由于本人沒有啥編程背景,所以水平有限。有和疏漏或不當的地方還請輕拍指正。向各位虛心請教!
總結
以上是生活随笔為你收集整理的matlab xlsread参数_利用MATLAB批量完成科研数据处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 诛仙手游马酒所有坐标是什么
- 下一篇: 开罗蛋糕店配方秘籍是什么