2017-03-03 9 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は存在しないため、動作しません。 mydata{k}fidに置き換えてください。おそらくvaluesmydata{k}である。

その他のバグはnumfiles = ...です。 '* .dat'に5文字あるので、常にnumfiles = 5になります。

numfiles = length(files); 

あなたもディレクトリを数えますが、より良いでしょう。これを解決する方法を他の質問の1つをチェックしてください。

関連する問題