在循环开始时我需要添加什么?

时间:2010-02-28 00:21:25

标签: matlab filereader

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

2 个答案:

答案 0 :(得分:3)

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

myfiles = dir('*.txt');
for i = 1:length(myfiles)
    nom_fichier = myfiles(i).name;
    ...do processing here...
end

答案 1 :(得分:1)

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

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

接下来,我不确定你的问题是什么。是如何加载数据的?如果文件只是分隔的数字,每行的数量相同,那么加载就足以加载它们,或者你可能需要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');