// 做光纖項(xiàng)目遇到四百多個(gè)tdms文件需要批量轉(zhuǎn)換成excel文件田篇,再對(duì)其進(jìn)行畫(huà)圖保存
// tdms文件轉(zhuǎn)換成excel文件可以參考我上一篇博客(還沒(méi)有寫(xiě)完礁鲁,之后會(huì)補(bǔ)上去自己的做法)
// 這篇主要介紹matlab如何批量讀取excel文件數(shù)據(jù)并進(jìn)行畫(huà)圖保存
// 話不多說(shuō),我們直接上代碼吧:
%% 批量處理excel文件并畫(huà)圖保存
%% 清除變量信息
clc ; clear ;
%% 轉(zhuǎn)入數(shù)據(jù)文件目類(lèi)
cd('F:\實(shí)驗(yàn)調(diào)研\(zhòng)測(cè)試數(shù)據(jù)\Jitter')? ? ?%該文件夾是你存放多個(gè)excel文件的文件夾
folder = dir('*.csv');? ? ?%讀取文件夾下的excel文件螟炫,返回一個(gè)結(jié)構(gòu)體波附,結(jié)構(gòu)體里面保存的是每個(gè)excel文件的信息
n = length( folder );? ? ?%文件夾下一共有幾個(gè)excel文件,以便下面的循環(huán)使用
%% 開(kāi)始對(duì)文件夾下的excel文件進(jìn)行批量處理
for k = 1 : n
? ?file_name = folder(k).name ;? ? ?%提取excel文件的名字
? ?file_name = char( file_name ) ;
? ?[Data, text, alldata] = xlsread(file_name) ;? ? ?%讀取excel文件的數(shù)據(jù)昼钻,這里我只使用到文件中的Data掸屡,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %所以可以改為: ?[Data] = xlsread(file_name) ;
%% IV Format Conversion,把數(shù)據(jù)轉(zhuǎn)為數(shù)值然评,保存?
? ?V = alldata( : , 1 ) ; I = alldata( : , 3 ) ;? ? ?%這兩行的內(nèi)容我沒(méi)有使用仅财,提供給需要的小伙伴
? ?V = cell2mat( V ) ; I = cell2mat( I ) ;
%% 開(kāi)始畫(huà)圖
? ?plot( V, I , 'b*-' , 'Linewidth' , 3 ) ;? ? ?%這部分可以改成你需要對(duì)數(shù)據(jù)進(jìn)行的畫(huà)圖處理
? ?grid on
%%轉(zhuǎn)入圖片保存路徑? ? ? ?
? ?cd('F:\實(shí)驗(yàn)調(diào)研\(zhòng)測(cè)試數(shù)據(jù)\Jitter_圖片')? ? %轉(zhuǎn)到保存圖片的路徑
%%原數(shù)據(jù)文件名字問(wèn)XXX.xlsx,因此需要去除.xlsx(即文件名的后綴)沾瓦,剩余XXX為圖片名字
? ?Position = find( file_name == '.' ) ;
? ?Picturename = file_name( 1 : Position-1 ) ;
? ?saveas( gcf, Picturename , 'bmp' )? ? ? %保存圖片為bmp格式满着,這里你也可以改成jpg格式
? ?clf
%% 處理下一個(gè)數(shù)據(jù)
? ?cd('F:\實(shí)驗(yàn)調(diào)研\(zhòng)測(cè)試數(shù)據(jù)\Jitter')
end
%% 返回m文件路徑
cd('F:\實(shí)驗(yàn)調(diào)研\(zhòng)測(cè)試數(shù)據(jù)')
最后也留下我修改后的代碼給大家作參考谦炒,也可以給自己留一個(gè)備份:
以上贯莺,完。