2016-03-31 14 views
0

私は、1つのマトリックスしか持たないフォルダでたくさんのテキストファイルを読まなければなりません。だから、ファイルの名前を書くときにdlmreadが良いことがわかりました。しかし、私はMATLABにそれらをすべて読ませることができませんでした。dlmreadを使ってフォルダ内のすべてのファイルを読むにはどうしたらいいですか?

この小さなコードを修正するにはどうすればよいですか?良い方法がある場合は、控えてください。

files = dir('C:\Users\ABC\Desktop\a\*.txt') 
for k = 1:length(files) 
    fname= files(k).name 
    M = dlmread('fname') % This part is wrong 
    % REST OF CODE for each Matrix M 
end 

fnameは本当にファイルの名前、例えば1.txtを読み込みます。私がM = dlmread('1.txt')を書くと、Mに行列が読み込まれますが、M = dlmread('fname')と書くとそれはありません。

どうすればこのようにすることができますか?

+0

可能な重複:http://stackoverflow.com/questions/11621846/loop-through-fil es-in-a-folder-in-matlab - 私はあなたが望むものを実際に得られませんでした。 –

+0

よくfnameは実際にはファイルの名前、例えば1.txtを読み込みます。 M = dlmread( '1.txt')と書くと、行列はMに読み込まれますが、M = dlmread( 'fname')と書くとそうなりません。私は何をしなければならないと私はそれを修正することができます。ありがとう – xcvbnm

+0

@xcbnm:ああ、あなたを持っています。それはコードで直接見ているは​​ずです。 :D –

答えて

3

あなたが必要とする:

for k=1:numel(files) 
    fname = fullfile('C:\Users\ABC\Desktop\a', files(k).name); 
    M = dlmread(fname); 
    % ... 
end 

2つのこと:

  1. fnameは、ファイルが現在のディレクトリにないので、あなたが指定する必要が変数ではなく、文字列リテラル
  2. ですフルパス
+0

ありがとう、私はそれを受け入れるが、私は10分待たなければならない。再度、感謝します – xcvbnm

関連する問題