2016-05-03 33 views
0

我试图读取一个文件夹中的所有jpg文件,并将其存储在一个向量中。R - 阅读jpeg时下标越界

为了简单起见,我试图只读取两张图片作为开头。

首先,我创建一个列表,它给了我一个1:2的字符向量。

original_files <- list.files("D:/User/Documents/Folder", pattern="*jpg$", full.name=F) 

导致:

[1] "File1.jpg" "File2.jpg" 

然后,我创建一个空列表和一个for循环来阅读所有,并将其储存:

empty_list=list() 
    for (i in original_files) 
    { 
     img <- readJPEG(original_files[[i]]) 
     empty_list[[i]] <- img 
    } 

执行它的函数返回以下错误:

Error in gabor_ori_files[[i]] : subscript out of bounds 

我真的不明白为什么我会收到此消息或如何解决此问题。我尝试过使用lapply而不是for循环,它也不起作用。

任何帮助将不胜感激。在此先感谢您的时间。

回答

0

错误来自您为参数定义的方式。

for (i in original_files) 

意味着我应该采取original_files中的值,意思是“File1.jpg”“File2.jpg”。在这样做的第一个循环你所要求的

img <- readJPEG(original_files[["File1.jpg"]]) 

然而,没有在你的向量元素有“File1.jpg”,他们有“File1.jpg”的

避免这种混淆的最好方法是始终在位置上循环而不是名称。为了换句话说,使用

for (i in 1:length(original_files)) 

它应该工作,然后