2016-05-03 7 views
0

フォルダからすべてのjpgファイルを読み込み、ベクトルに格納しようとしています。R - jpegを読むときに下付き文字がありません

簡単にするため、私は最初に2つの画像しか読み込もうとしていません。

まず、私は1:2の文字ベクトルを与えるリストを作成します。その結果

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

:次に

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

私は空のリストを作成し、ループのためにそれらをそれらすべてを読み込みおよび格納するために:

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 

なぜこのメッセージが出てくるのか、それをどう解決するのか分かりません。 forループの代わりにlapplyを使用しようとしましたが、どちらも動作しません。

ご協力いただければ幸いです。あなたの時間を事前に感謝します。

答えて

0

エラーは、for引数を定義する方法に起因します。

for (i in original_files) 

は、「File1.jpg」「File2.jpg」を意味するoriginal_filesの値を取る必要があることを意味します。最初のループでやって、あなたは

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

を求めているが、あなたのベクトルの要素のどれもが名前「File1.jpg」を持っていない、彼らは「File1.jpg」のを持って

この種の混乱を避ける最善の方法は、名前の代わりに常に位置をループすることです。

for (i in 1:length(original_files)) 

を使用して、注文の言葉では、それから、

を動作するはずです
関連する問題