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

歡迎訪問 生活随笔!

生活随笔

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

循环神经网络

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

發(fā)布時(shí)間:2023/12/19 循环神经网络 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab xlsread参数_利用MATLAB批量完成科研数据处理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

利用常用軟件批量完成科研數(shù)據(jù)處理

tags:
- MATLAB
- 科研軟件

相信平時(shí)大家都有這種時(shí)候,測了一大堆數(shù)據(jù),也知道該怎么去處理,但是樣品很多,數(shù)據(jù)量很大,然后對于每個(gè)樣品去處理的時(shí)候都得用軟件進(jìn)行重復(fù)的處理,才能得出有效的信息。這樣不僅工作量相當(dāng)大,自己也會感到非常厭煩。一般我碰到這種時(shí)候是不能忍的,所以就通過手頭能用到的東西,簡化了工作。今天就給大家介紹一下我自己的解決辦法。

首先我們看一下我們要處理的數(shù)據(jù)內(nèi)容,是一堆excel文件,而excel文件里面的數(shù)據(jù)是儀器的的測試數(shù)據(jù)。

首先我們要做的就是把數(shù)據(jù)讀取出來,這里會用到MATLAB里的幾個(gè)函數(shù),首先是dir函數(shù),此函數(shù)的作用是獲取特定地址文件夾中的文件列表。用法如下:

path='D:my_datatest dataIV data20171116' %此處文件地址改為需要的文件夾路徑 Files = dir(strcat(path,'*.xlsx'));

其中Files是我們命名的變量,而path是文件夾的地址,strcat是橫向連接字符的函數(shù),這樣相當(dāng)于是把文件列表中的每個(gè)xlsx文件的地址和名稱獲取了,然后存到了一個(gè)數(shù)組中,數(shù)組名為Files。
然后,我們需要知道這個(gè)數(shù)組的長度,所以應(yīng)用length函數(shù)獲取數(shù)組長度

LengthFiles = length(Files);

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

for i = 1:LengthFilesxls_data = xlsread(strcat(path,Files(i).name));file_name=Files(i).name;[m,n]=size(xls_data); end

上面代碼中應(yīng)用循環(huán)結(jié)構(gòu),對每個(gè)文件都采用數(shù)據(jù)讀取函數(shù),MATLAB中excel文件的讀取函數(shù)是xlsread,其用法與dir函數(shù)類似,都需要strcat函數(shù)來對文件的地址和名稱連接,然后作為函數(shù)的參數(shù)。最后的[m,n]是用于獲取每個(gè)文件的數(shù)據(jù)的大小,其中m是數(shù)據(jù)的行數(shù),n是數(shù)據(jù)的列數(shù)。
到這里我還只是獲取文件的數(shù)據(jù)和文件的地址,名字而已。未對數(shù)據(jù)做出任何處理。下面我們以畫圖為例,展示批量處理數(shù)據(jù)然后每個(gè)數(shù)據(jù)輸出圖片。這里我的每個(gè)文件數(shù)據(jù)中還有很多列有用的,相當(dāng)于每個(gè)文件中又有單獨(dú)的幾個(gè)器件的數(shù)據(jù)。這樣我還需要一層循環(huán)結(jié)構(gòu):

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

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

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% 本程序是用于將測試數(shù)據(jù)xls作圖輸出jpg文件 %%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%此處文件地址改為需要的文件夾路徑 path='D:my_data-201711-201903test dataIV data20171116';%%設(shè)置數(shù)據(jù)列的循環(huán)周期 ct=3;Files = dir(strcat(path,'*.xlsx')); LengthFiles = length(Files); %%將每次測試不同器件的數(shù)據(jù)都畫圖 for i = 1:LengthFilesxls_data = xlsread(strcat(path,Files(i).name));file_name=Files(i).name;[m,n]=size(xls_data);%%將每個(gè)器件多次重復(fù)測試的數(shù)據(jù)都畫圖for j=ct:ct:n-1set(gcf,'visible','off')%設(shè)置圖片彈窗為不可見zeroparameter = xls_data((m+1)/2,j+1);%取X軸零點(diǎn)處的y坐標(biāo)y = xls_data(:,j+1)- zeroparameter;%將數(shù)據(jù)扣除掉零點(diǎn)漂移plot(xls_data(:,j),abs(y));%畫圖semilogy(xls_data(:,j),abs(y));%將y軸變量取對數(shù)axis([-2,2,1E-12,1E-4]);%設(shè)定y軸的范圍為固定的,此處設(shè)定坐標(biāo)軸的語句必須置于將y軸變量取對數(shù)的語句之后 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;

補(bǔ)充:這里補(bǔ)充一個(gè)我數(shù)據(jù)結(jié)構(gòu)截圖,因?yàn)楹笈_有不少朋友問具體的細(xì)節(jié)。但是其實(shí)我已經(jīng)說明了,不同的數(shù)據(jù)結(jié)構(gòu)上述代碼肯定是不能直接套用的,必須理解了你自己的數(shù)據(jù)結(jié)構(gòu),然后按照上述方法去設(shè)計(jì)自己的代碼,才能設(shè)計(jì)出來適合你自己的程序。如果實(shí)在是需要我數(shù)據(jù)源文件的朋友,可以私信我領(lǐng)取。

本代碼處理的數(shù)據(jù)的結(jié)構(gòu)

以上代碼均為原創(chuàng),轉(zhuǎn)載請告知。
另外,由于本人沒有啥編程背景,所以水平有限。有和疏漏或不當(dāng)?shù)牡胤竭€請輕拍指正。向各位虛心請教!

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。