【发布时间】:2013-12-23 05:32:32
【问题描述】:
所以,我正在通过imread('D:\pic1\foo.jpg') 读取数百个图像文件,其中一些类似于imread('D:\pic2\Thumbs.db')。阅读后,我将存储在这样的数据库中,train(i) = imread('D:\pic1\foo.jpg')。问题在于imread('D:\pic2\Thumbs.db'),读取此类文件显然会出错。我想像这样缓解这个问题:
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
问题出在此处的 try 块中。有两件事情发生,一件是读取文件,另一件是将 imread 值分配给train(i)。现在,这很重要,只有在成功的imread() 上才会有分配,而在失败时会出现错误。 Matlab 通过 catch 块处理错误,没有块可以处理成功条件,我可以在其中进行分配,因此我可以轻松读写。
我想要这样的东西:
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
我只是在搜索 Matlab 文档时想出了 try and catch,如果有任何东西可以帮助我简洁地编写代码,我将不胜感激。
【问题讨论】:
标签: matlab