データベース・大量の画像ファイルの読み込み

大量のデータをMatlabで読み込む際,ファイルが1つや2つならともかく何千個もある場合はtextreadやimreadを何千行も書くわけにはいかない.簡単な方法を思いついたのでメモ.
まず,端末上でデータの収まっているディレクトリに移動し,ファイルのリストを作る.なお,目的のデータ以外のファイルがあった場合は,list.txtから適当に削除する.

$ls > list.txt

次にmatlabのタブからFile→Import Dataを選択.これで,listという変数が作られる.変数型はCell,で中身は文字列でファイル名が収まっている.mファイルに書いて,バッチ処理をしたい場合は次のように書けばよい.

list = importdata('list.txt');

後は

>>img(1)=imread(list{1},'png');

という形で読み込める.これを利用して変数に格納し,扱いやすい形にしたらmatファイルにして保存.これでデータベースをmatlabで扱いやすい形に変換できる.コードを走らせる際は作成したmatファイルを利用する.
コードで一括で行う際は

for i=1:end
   img(i) = imread(list{i},'png');
end

endのところをlength(list)にした方が良い気もする.