質問: ディレクトリの下の階層も全て含めてmatlabに読み込ませるには? プログラミング初心者です。 matlabで画像処理を行なおうと思っており、ディレクトリを(画像等が入っている)下の階層含め、すべて読み込ませようと思ったのですが、どうやらうまくいっていないようです。 .mファイルのみ読み取ることができて、matlab上でコードを書けるのですが、画像等も読み込ませる必要がございますので、ご教示頂けますと幸いです。
回答: ディレクトリごと読み込ませるために https://jp.mathworks.com/help/matlab/ref/dir.html また画像を読み込む際は https://jp.mathworks.com/help/matlab/ref/imread.html が参考になるかと思います. impreadをして画像を読み込む際,pathが必要になります. pathというのは,実行するmファイルから,その画像までの移動するフォルダの名前になります 例えば,mainフォルダの下にaというフォルダがあったとします. そしてその中にa.pngがあったとすると, % まずこれでmain foldの中のa, bが見える dir main % main folderの中を取得 mainfolderinfo = dir('main') % 配列構造で入っているので % 以下のような感じ % {'.'; '..'; 'a'; 'b'} % folderの名前を取得 foldername = mainfolderinfo(3).name % 名前の足し算 path = strcat('main/', foldername) % folder aの情報を取得 afolderinfo = dir(path) % これも先ほどと同様に見えるので % 以下のような感じ % {'.'; '..'; 'a.jpg'} % よって3番目から名前を取得する img_name = afolderinfo(3).name img_path = strcat( path, '/', img_name) imread(img_path) で読み込むことができます. もし,画像の名前を連番等にしている場合はわざわざこのようなことをしなくてもそのdataまでのpathを指定してあげればfor文等でまとめて読み込めます. % main/aの中の1.png ~ 100.pngを読み込む場合 for c = 1:100 % pathの指定 img = imread(strcat('main/a/', num2str(c), '.png')) end