質問: matlab で現在のフォルダにある全てのテキストファイルを読み込むにはどうすればよいですか? matlab で、現在のフォルダ内にあるテキストファイル( .txt)を全て読み込み、1つの 変数として定義する方法を教えてください。
回答: dir 関数で、ファイル名のリストを取得し、それを元にループ処理で読み込みを行うことができます。 以下のコマンド例は、カレントディレクトリ内にある全ての .txt ファイルを多次元配列として読み込む例です。 % テストファイルの作成 csvwrite('a.txt',rand(3)) csvwrite('b.txt',rand(3)) csvwrite('c.txt',rand(3)) % テキストファイルの読み込み list = dir('*.txt'); % 現在のフォルダーにある .txt をリスト % データの読み込み for n = 1:length(list) data(:,:,n) = csvread(list(n).name); end 上記の例は、ファイル内のデータサイズが一致いるため、多次元の double 型の配列として変数 data を作成しましたが、データのサイズが一致してなければ、セル配列や構造体データとして保存することが可能です。 以下は、セル配列として読み込む例です。 numarrays = length(list); % ファイルの数 data = cell(numarrays,1); % 配列事前確保 for n = 1:numarrays data{n} = csvread([file_name{n},'.txt']); end データの読み込みに関しては、ファイルに応じて適切な関数を使用します。詳細については、以下の url よりドキュメントをご覧ください。 ・matlab: データのインポートとエクスポート https://jp.mathworks.com/help/matlab/data-import-and-export.html