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(フィッド);

順番にファイルがある場合、プログラムの残りの部分は正常に動作するようになりました

つまり、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 以外で始まる場合も同じ問題があります

4

1 に答える 1

1

existmatlabのドキュメントで探してください。このようなものが動作するはずです:

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 に答える