2015-06-17 97 views
0

我使用MATLAB代碼來讀取多個文件,寫以下列方式輸出:跳過數據文件,同時讀取輸入和MATLAB代碼編寫輸出

n=202; 
for idx = 0:n 

    infilename = sprintf('pt%d.txt',idx); 
    outname = sprintf('out%d.txt',idx); 

現在,如果一些任意的數據文件丟失例如pt20.txt,pt50.txt等代碼終止。我想修改代碼的方式是,如果沒有找到某些數據文件,那麼代碼將跳過它們並繼續讀取/寫入下一個可用的數據文件。

謝謝。

回答

1

你也可以使用exist

n=202; 
for idx = 0:n 
    infilename = sprintf('pt%d.txt',idx); 
    outname = sprintf('out%d.txt',idx); 
    if exist(infilename , 'file') == 2 
     do your stuff 
    end 
end 
+0

謝謝。我猜這不起作用,它有語法錯誤。但是,如果我嘗試infilename = sprintf('pt%d.txt',idx); 如果exsit(infilename),那麼一旦遇到缺少的數據文件,代碼就會終止。因此,例如,如果第8個數據文件丟失,它會在遇到缺失的數據文件之前寫入輸出,並且它們會終止。 – user3520388

+0

它應該工作。如果文件不存在,for循環將繼續執行作業。你能否提供其餘的cde來了解問題。 – wanjolivet

+0

嗨,非常感謝。我想,以前在「文件」後面有一個缺少引號的錯字。我只是注意到你編輯了這部分,我從未注意到失蹤的'。這是我的不好。現在正在工作。再次感謝。 – user3520388