for ループを使用して次のファイルを読み取る方法: (ループはファイル名の文字を無視できますか?)
abc-1.TXT
cde-2.TXT
ser-3.TXT
wsz-4.TXT
aqz-5.TXT
iop-6.TXT
このループの最初に何を追加する必要がありますか??
for i = 1:1:6
nom_fichier = strcat(['MyFile\.......' num2str(i) '.TXT']);
for ループを使用して次のファイルを読み取る方法: (ループはファイル名の文字を無視できますか?)
abc-1.TXT
cde-2.TXT
ser-3.TXT
wsz-4.TXT
aqz-5.TXT
iop-6.TXT
このループの最初に何を追加する必要がありますか??
for i = 1:1:6
nom_fichier = strcat(['MyFile\.......' num2str(i) '.TXT']);
DIRコマンドを使用すると、ファイル名の作成を回避できます。例えば:
myfiles = dir('*.txt');
for i = 1:length(myfiles)
nom_fichier = myfiles(i).name;
...do processing here...
end
まず、なぜここで strcat を使用するのですか? これは、それ自体が SINGLE 文字列です。すべての連結は、角かっこ [] によって既に行われています。
['MyFile\.......' num2str(i) '.TXT']
次に、ここであなたの質問が何であるかわかりません。データをロードする方法はありますか?ファイルが単純に区切られた数字で、各行に同じ数のファイルがある場合は、load で十分にロードできます。
私の推測では、ファイル名の主要部分を作成する方法がわからないということです。あなたはこのようにするかもしれません:
Names = {'abc' 'cde 'ser' 'wsz' 'aqz' 'iop'};
for i = 1:6
fn = ['MyFile',filesep,Names{i},'-',num2str(i),'.TXT'];
data = load(fn);
% do other stuff ...
end
名前を入力して変数を作成したくない場合は、次のように dir を使用して、テキスト ファイル名のリストを作成します。
Names = dir('MyFile\*.TXT');