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