Matlab 使用imread URL时如何处理过期的URL链接?

Matlab 使用imread URL时如何处理过期的URL链接?,matlab,url,imread,Matlab,Url,Imread,我正在开发,它有一个很长的图片URL列表 我使用for循环来获取这些照片。然而,一些url已经过期,因此我的matlab代码返回一个错误,说“无法确定文件格式”。然而,我认为实际原因是url链接不再有图像。例如,错误的URL之一是: 如何识别并忽略此错误,以便我的代码可以继续处理列表的其余部分?我可以用R来代替,如果这样可以更容易地解决这个问题。您可以实现一个块来捕获原始的isnot'it错误消息,并在链接确实断开时跳过图像 当我们使用以下语法时: try A = imread('htt

我正在开发,它有一个很长的图片URL列表

我使用for循环来获取这些照片。然而,一些url已经过期,因此我的matlab代码返回一个错误,说“无法确定文件格式”。然而,我认为实际原因是url链接不再有图像。例如,错误的URL之一是:

如何识别并忽略此错误,以便我的代码可以继续处理列表的其余部分?我可以用R来代替,如果这样可以更容易地解决这个问题。

您可以实现一个块来捕获原始的isnot'it错误消息,并在链接确实断开时跳过图像

当我们使用以下语法时:

try
   A = imread('http://www.gossip.is/cgi-sys/suspendedpage.cgi');

catch ME

 %// Just so we know what the identifier is.  
      ME


end
Matlab首先尝试读取url给出的图像。如果不能,我们要求它实际捕获错误消息MException并执行其他适当的操作

问题是,我们需要知道确切的错误消息是什么,以便在try/catch块中识别它

当我输入上述代码时,我得到了以下结构:

因此,一旦我们知道生成错误的确切标识符,我们就可以使用strcmp在try/catch块中查找它。例如,使用以下代码:

clear
clc


try
   A = imread('http://www.gossip.is/cgi-sys/suspendedpage.cgi');
catch ME
   if strcmp(ME.identifier,'MATLAB:imagesci:imread:fileFormat')

       disp('Image link broken')

   end

   A = imread('peppers.png');
end 

imshow(A);
Matlab显示“图像链接已断开”,并按预期读取peppers.png

希望有帮助

您可以实现一个块来捕获错误消息的原始信息,如果链接确实断开,则跳过图像

当我们使用以下语法时:

try
   A = imread('http://www.gossip.is/cgi-sys/suspendedpage.cgi');

catch ME

 %// Just so we know what the identifier is.  
      ME


end
Matlab首先尝试读取url给出的图像。如果不能,我们要求它实际捕获错误消息MException并执行其他适当的操作

问题是,我们需要知道确切的错误消息是什么,以便在try/catch块中识别它

当我输入上述代码时,我得到了以下结构:

因此,一旦我们知道生成错误的确切标识符,我们就可以使用strcmp在try/catch块中查找它。例如,使用以下代码:

clear
clc


try
   A = imread('http://www.gossip.is/cgi-sys/suspendedpage.cgi');
catch ME
   if strcmp(ME.identifier,'MATLAB:imagesci:imread:fileFormat')

       disp('Image link broken')

   end

   A = imread('peppers.png');
end 

imshow(A);
Matlab显示“图像链接已断开”,并按预期读取peppers.png


希望有帮助

我不知道mathlab,但R对此有一些错误处理,应该很容易实现。看一看?在R中尝试。如果您遇到问题,请发布您尝试的内容,人们会帮助您解决。我不知道mathlab,但R对此有一些错误处理,这应该很容易实现。看一看?在R试试。如果你卡住了,把你试过的贴出来,人们会帮你解决。这正是我需要的。我学到了很多关于如何“调试”。非常感谢你!太好了,那太棒了!我的荣幸:这正是我所需要的。我学到了很多关于如何“调试”。非常感谢你!太好了,那太棒了!我的荣幸: