日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab xlsread参数_利用MATLAB批量完成科研数据处理

發布時間:2023/12/19 循环神经网络 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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函數獲取數組長度

LengthFiles = length(Files);

接下來就是對每一個文件讀取其中的數據,并且將其存到一個與原始數據大小一致的二維矩陣中。

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是數據的列數。
到這里我還只是獲取文件的數據和文件的地址,名字而已。未對數據做出任何處理。下面我們以畫圖為例,展示批量處理數據然后每個數據輸出圖片。這里我的每個文件數據中還有很多列有用的,相當于每個文件中又有單獨的幾個器件的數據。這樣我還需要一層循環結構:

for j=3:3:n-1set(gcf,'visible','off')%設置圖片彈窗為不可見zeroparameter = xls_data((m+1)/2,j+1);%取X軸零點處的y坐標y = xls_data(:,j+1)- zeroparameter;%將縱坐標歸零plot(xls_data(:,j),abs(y));%畫圖semilogy(xls_data(:,j),abs(y));%將y軸變量取對數axis([-2,2,1E-12,1E-4]);%設定y軸的范圍為固定的,此處設定坐標軸的語句必須置于將y軸變量取對數的語句之后 xlabel('Voltage(V)');% x軸名稱ylabel('Current(A)');k=j/3;saveas(gcf,[path,strcat(file_name,'-',num2str(k)),'.jpg']);%輸出圖形到指定地址delete(gcf);end

這里大家可以自行修改,比如我的文件里面還有獨立的組,那我就還需要一層循環,但是如果你的文件里只有一組數據,那你就不需要在加一層循環。
我這里是每三列數據為一組,所以我這里循環的步長是j=3:3:n-1,但是其實你也可以根據自己的來定。還有我的數據測試了之后會在零點處有一點漂移,所以我對每一組數據都會獲取零點處的漂移量,然后將整體的數據都平移,使得零點歸零。
還有一些對圖片屬性設置的,比如我把圖片的彈框設置為不可見,這樣在循環過程中畫圖的時候就不會彈框,不然MATLAB是默認會彈框的,其實我們這種畫圖的方法其實是調用MATLAB本身的畫圖函數,然后遍歷每個文件的每組數據,將其畫圖,然后將畫出的圖保存到指定的地址。所以上面關于圖片的屬性其實都可以在保存圖片之前進行修改設定。像我上面的情形就是對圖片設置了一下,首先對y軸的變量值進行了絕對值處理,然后對y軸取對數,相當于圖片中y軸顯示為對數坐標的模式。然后我還設定了一下坐標的范圍,這些都是可以設定,大家也可以去搜索命令,對圖片進行自己需要的參數設定。
最后,是代碼整體的效果。測試可行的結果以下面的代碼為準!

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% 本程序是用于將測試數據xls作圖輸出jpg文件 %%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%此處文件地址改為需要的文件夾路徑 path='D:my_data-201711-201903test dataIV data20171116';%%設置數據列的循環周期 ct=3;Files = dir(strcat(path,'*.xlsx')); LengthFiles = length(Files); %%將每次測試不同器件的數據都畫圖 for i = 1:LengthFilesxls_data = xlsread(strcat(path,Files(i).name));file_name=Files(i).name;[m,n]=size(xls_data);%%將每個器件多次重復測試的數據都畫圖for j=ct:ct:n-1set(gcf,'visible','off')%設置圖片彈窗為不可見zeroparameter = xls_data((m+1)/2,j+1);%取X軸零點處的y坐標y = xls_data(:,j+1)- zeroparameter;%將數據扣除掉零點漂移plot(xls_data(:,j),abs(y));%畫圖semilogy(xls_data(:,j),abs(y));%將y軸變量取對數axis([-2,2,1E-12,1E-4]);%設定y軸的范圍為固定的,此處設定坐標軸的語句必須置于將y軸變量取對數的語句之后 xlabel('Voltage(V)');% x軸名稱ylabel('Current(A)');k=j/3;saveas(gcf,[path,strcat(file_name,'-',num2str(k)),'.jpg']);%輸出圖形到指定位置delete(gcf);end end clear; clc;

補充:這里補充一個我數據結構截圖,因為后臺有不少朋友問具體的細節。但是其實我已經說明了,不同的數據結構上述代碼肯定是不能直接套用的,必須理解了你自己的數據結構,然后按照上述方法去設計自己的代碼,才能設計出來適合你自己的程序。如果實在是需要我數據源文件的朋友,可以私信我領取。

本代碼處理的數據的結構

以上代碼均為原創,轉載請告知。
另外,由于本人沒有啥編程背景,所以水平有限。有和疏漏或不當的地方還請輕拍指正。向各位虛心請教!

總結

以上是生活随笔為你收集整理的matlab xlsread参数_利用MATLAB批量完成科研数据处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。