文本扫描迭代

时间:2013-01-04 19:19:59

标签: matlab textscan

我有一些要处理的文件,但我在中间丢失了文件 我正在使用

  

表示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等文件,我就会遇到麻烦

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

由于

编辑:

缺少文件我主要是指'Raw'之后的数字

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

当所有文件都按顺序存在时,我没有问题。

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

1 个答案:

答案 0 :(得分:1)

在matlab文档中查找exist。这样的事情应该有效:

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之类的内容