So, ich lese Hunderte von Bilddateien über imread('D:\pic1\foo.jpg')
und einige von ihnen sind wie imread('D:\pic2\Thumbs.db')
. Nach dem Lesen speichere ich in einer Datenbank wie dieser, train(i) = imread('D:\pic1\foo.jpg')
. Das Problem ist mit imread('D:\pic2\Thumbs.db')
, das Lesen solcher Dateien gibt offensichtlich Fehler. Ich wollte dieses Problem wie folgt abschwächen:versuchen, Block in Matlab
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 im Versuch Block hier. Es gibt zwei Dinge, die passieren, wenn einer die Datei liest, der andere den Wert train(i)
zuweist. Nun ist das wichtig, nur bei einer erfolgreichen imread()
sollte es eine Zuordnung geben und bei einem Fehler würde ein Fehler auftreten. Matlab kümmert sich um den Fehler über den catch-Block, es gibt keinen Block, der sich um die Erfolgsbedingung kümmert, wo ich die Aufgabe erledigen kann, so dass ich ohne viel Aufwand lesen und schreiben kann.
Ich möchte etwas wie folgt aus:
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
ich nur mit try und catch kam während Matlab docs suchen, werde ich wirklich schätzen, wenn es etwas gibt, das mir den Code kurz und bündig schreiben helfen.
Ich liebe euch. Ich habe am Ende so programmiert. – motiur