MATLAB Answers

MATLAB で現在のフォルダにあ​る全てのテキストファ​イルを読み込むにはど​うすればよいですか?

450 ビュー (過去 30 日間)
MATLAB で、現在のフォルダ内にあるテキストファイル( .txt)を全て読み込み、1つの 変数として定義する方法を教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2017 年 6 月 14 日
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

その他の回答 (0 件)

製品


リリース

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!