星期四, 3月 05, 2009

Matlab搬檔試作

完托福後,最近又回實驗室準備要完成當初應該做的事情,重新又開始寫matlab,不過這次搬檔案拿matlab來寫,真的是殺雞用牛刀,不過因為我又不熟python跟C的指令(汗顏!),所以只好搞matlab,結果指令也差不多忘光光,結果搞了差不多三個小時,加上寫blog就搞了四個小時(哈!我上班都在打混)!

##CONTINUE##



  這次最主要的是,要把我實驗資料重新排列,可以從圖上發現,當初我的資料是按照日期安排,然後我的實驗又是前中後三個時間點測試,所以不同日期會有相同人在不同時間的資料,今天我是想把他作成,以人名為資料夾名稱,把我要的資料按前中後分別抓到三個資料夾內。



  所以程式寫法就是,進入每一個資料夾(好在我當初分析的時候,檔名都很一致),抓出我要的檔案,然後去設一個新的位置,相同人如果重複,表示換成另外一個時間點(因為我是按照資料夾時間去抓的),判斷資料夾是否已經出現,新增時間點,放入資料!




clear all
%%%%%%%% Enter E:\Data_ply %%%%%%%%
dir_date = dir('E:\Data_ply');
newdir=['F:\rms_data\'];
mkdir(newdir);
for i = 3:length(dir_date)
path = ['E:\Data_ply\',dir_date(i).name,'\'];
dir_sub = dir(path);
for l = 3:length(dir_sub)
path_1 = [path,dir_sub(l).name,'\analysis\'];
newfilepath = [newdir,dir_sub(l).name];
if exist(newfilepath,'dir')==0
newfilepath_pre = [newfilepath,'\pre\']
mkdir(newfilepath_pre)
if exist([path_1,'f_1.txt'])==2
copyfile([path_1,'f_*.txt'],newfilepath_pre)
end
elseif exist(newfilepath,'dir')==7 && exist([newfilepath,'\pre'],'dir')==7 && exist([newfilepath,'\4wk'],'dir')==0
newfilepath_4wk = [newfilepath,'\4wk\']
mkdir(newfilepath_4wk)
if exist([path_1,'f_1.txt'])==2
copyfile([path_1,'f_*.txt'],newfilepath_4wk)
end
elseif exist(newfilepath,'dir')==7 && exist([newfilepath,'\pre'],'dir')==7 && exist([newfilepath,'\4wk'],'dir')==7
newfilepath_8wk = [newfilepath,'\8wk\']
mkdir(newfilepath_8wk)
if exist([path_1,'f_1.txt'])==2
copyfile([path_1,'f_*.txt'],newfilepath_8wk)
end
end
end
end


沒有留言: