2016-05-03 26 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)) 

它應該工作,然後