0

如何使用 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']);
4

2 回答 2

3

您可以避免使用DIR命令构造文件名。例如:

myfiles = dir('*.txt');
for i = 1:length(myfiles)
    nom_fichier = myfiles(i).name;
    ...do processing here...
end
于 2010-02-28T00:29:47.677 回答
1

首先,为什么要在这里使用 strcat ?这本身就是一个单一的字符串。所有连接都已由方括号 [] 完成。

['MyFile\.......' num2str(i) '.TXT']

接下来,我不确定您的问题是什么。是如何加载数据?如果文件是简单的分隔数字,每行的数字相同,那么 load 就足以加载它们,或者您可能需要 textread。

我的猜测是你不知道如何构建文件名的主要部分。你可以这样做:

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');
于 2010-02-28T00:55:13.800 回答