2017-03-03 77 views
0

如何使用matlab從目錄讀取多個文件?是否有人可以幫助糾正我下面的代碼:使用matlab從目錄中讀取多個文件

files =dir(fullfile(directory_path,'*.dat')); 
numfiles = length('*.dat'); 
mydat = cell(1, numfiles); 

for k = 1:numfiles 
    mydata{k} = fopen([directory_path,files(k).name]); 
    values=textscan(mydata{k},'%s','delimiter','\n'); 
    fclose(fid); 
    %fprintf(values) 
    ....do something with values..... 

end 

.dat文件只是許多行和需要在一個循環中被讀取並進一步處理字符串的單個列。

感謝

回答

0

感謝Zizy Archer。

我解決了這個問題是這樣的:

files =dir(fullfile(directory_path,'*.dat')); 
numfiles = length(files); 

for k = 1:numfiles 
    textFileName = [directory_path,files(k).name] 
    fid = fopen(textFileName, 'r'); 
    textData = textscan(fid,'%s','delimiter','\n'); 
    fclose(fid); 

    data = textData{:,1} 
end 
1

fopen給人文件指針,其中保存到mydata{k},並嘗試通過fclose(fid)釋放。沒有fid,所以它不起作用。 你應該做的是用fid代替mydata{k}。可能valuesmydata{k}。其他錯誤在numfiles = ...。您將始終有numfiles = 5,因爲'* .dat'中有5個字符。

numfiles = length(files); 

會更好,但你也會計算目錄。檢查其他問題之一如何解決這個問題。