如何使用 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 ?这本身就是一个单一的字符串。所有连接都已由方括号 [] 完成。
['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');