1

我有一些文件要处理,但我正在使用的中间缺少文件

对于 i=1:文件;

fid = fopen(['Raw',num2str(i),'.txt']);

D = textscan(fid1,'%*f %f%*f%*f%*f% f%f% [^\n]','delimiter',';','headerlines',50,'CollectOutput' , 1);

fclose(fid);

现在,当我按顺序整理文件时,程序的其余部分运行良好

即,我的文件夹中有 100,200 个任意数量的文件,依次为 Raw1.txt、Raw2.txt、Raw3.txt、...。

一旦缺少 Raw1.txt、Raw4.txt、Raw5.txt 等文件,我就会遇到麻烦

我如何迭代我的文本扫描,以便它可以忽略文件编号?

谢谢

编辑 :

通过丢失文件,我主要是指“原始”之后的数字

我的文件生成为 Raw1、Raw2、Raw3............ Raw400.txt

当所有文件都井井有条并且存在时,我没有问题。

当我有一些缺失或跳跃时,例如 Raw1 。Raw2........ Raw10, Raw15, Raw16 我有麻烦,因为从 Raw10.txt 跳转到 Raw15.txt 如果我的文件从 Raw1.txt 以外的任何地方开始,我也会遇到同样的问题

4

1 回答 1

1

exist在 matlab 文档中查找。像这样的东西应该工作:

for i=1:file;

    if exist(['Raw',num2str(i),'.txt'], 'file')
       % File exists!
       fid = fopen(['Raw',num2str(i),'.txt']);
       D = textscan(fid1,'%*f %f%*f%*f%*f%f%f%[^\n]','delimiter',';', 'headerlines',50,'CollectOutput', 1);
       fclose(fid);
    end

end

请注意, 也会exist(Name, 'file')检查文件的目录,因此要么给出完整的文件名(即带路径),要么尝试类似if exist(Name, 'file') == 2

于 2013-01-04T20:14:05.990 回答