2010-09-13 12 views
13

Bazı .dat dosyalarını .mat dosyalarına bir işlev kullanarak dönüştürüyorum. Bir dosya dönüştürmek için bu işlevin bir döngü içinde çağırıyorum. .dat dosyanızın bozuk olduğu ve fonksiyonun dönüştürülemeyeceği ve bir hatanın meydana geldiği, döngüyü durduran bazı durumlar vardır.MATLAB'de bir hata oluştuğunda döngüye nasıl devam edebilirim?

Şimdi sorum şu: Hata oluştuğunda, döngüdeki geçerli (i) değeri atlamalı ve bir sonraki arttırma değeri için (benim durumumda bir sonraki dosya) gitmesi gereken herhangi bir komut var mı?

cevap

20

TRY/CATCH deyimini CONTINUE ile birlikte yapabilirsiniz. döngü içinde aşağıdaki yerleştirin:

try    %# Attempt to perform some computation 
    %# The operation you are trying to perform goes here 
catch exception %# Catch the exception 
    continue  %# Pass control to the next loop iteration 
end 

DÜZENLEME:

Amro aşağıda onun yorumunda iyi bir fikir önerir. Hatanın oluştuğunu ve hangi dosya için olduğunu gösteren bir uyarı vermek isteyebilirsiniz veya belki de doğru şekilde dönüştürülemeyen dosyaların listesini kaydetmek isteyebilirsiniz. İkincisi yapmak için size döngü başlamadan önce, ilk olarak boş bir hücre dizi sunabilmesi: Eğer istisna yakalamak sonra Sonra

failedFiles = {}; %# To store a list of the files that failed to convert 

ancak continue komutunu vermeden önce, şimdiki dosyasının adı/yolu eklemek listeye dönüştürülen: en döngü tamamlandığında, daha sonra kolayca düzgün dönüştürmek vermedi görmek için failedFiles bakabilirsiniz

... 
catch exception 
    failedFiles = [failedFiles; {'currentFile.dat'}]; 
    continue 
end 

.

+6

belki hata kullanıcıyı haberdar etmelidir: 'denemek ... (ME.identifier, ME.message), ME yakalamak uyarı, devam Sonu ' – Amro