try-catch-block in Matlab

So, ich lese Hunderte von image-Dateien per imread('D:\pic1\foo.jpg') und einige von Ihnen sind wie imread('D:\pic2\Thumbs.db'). Nach der Lektüre bin ich der Speicherung in einer Datenbank wie dieser train(i) = imread('D:\pic1\foo.jpg'). Das problem ist mit imread('D:\pic2\Thumbs.db') ist, das Lesen von solchen Dateien gibt Fehler offensichtlich . Ich wollte das problem gemindert werden, wie diese:

for i=1:N
  try
    train(i) = imread(link{i})

    %link{i} can be 'D:\pic2\Thumbs.db' or 'D:\pic1\foo.jpg'

  catch 
    disp('Error')
  end
end

Das Problem ist in den try-block hier. Es gibt zwei Dinge, die passierten, liest die Datei ein weiteres ist die Zuordnung imread Wert train(i). Nun, dies ist wichtig, nur auf eine erfolgreiche imread() sollte es sein, einen Auftrag auf einen Fehler, es wäre ein Fehler. Matlab kümmert sich um die Fehler per catch-block, gibt es nicht einen block zu kümmern, Erfolg, Zustand, wo ich die Zuordnung, so dass ich Lesen und schreiben kann, ohne viel Aufwand.

Ich möchte so etwas wie dies:

j = 0;
for i=1:N

  try:
   imread(links{i})

  if success:
   train(j) = imread(links{i})
   j = j+1;

  if fail:
   error
  end

end

Kam ich erst mit try und catch bei der Suche Matlab-docs, ich werde wirklich schätzen, wenn es etwas gibt, was mir helfen wird, den code zu schreiben lapidar.

InformationsquelleAutor motiur | 2013-12-23

Schreibe einen Kommentar