MATLAB は、さまざまなデータ分析や科学計算に使用できる非常に強力な科学計算ソフトウェアです。実際の仕事や研究のプロセスでは、通常、システムの特定のディレクトリに存在するファイルにデータを保存します。これらのファイルを読み取る必要がある場合は、MATLAB が提供するファイルおよびフォルダーの操作関数を使用できます。この記事では、MATLAB を使用してフォルダー内のデータ ファイルを読み取る方法について説明します。
- 読み取り用のフォルダーを準備する
まず、読み取り元のフォルダーが必要です。MATLAB では "mkdir" 関数を使用して空のフォルダーを作成でき、フォルダーの削除には "rmdir" 関数が使用されます。あるいは、システムのネイティブ ファイル マネージャーを使用して、Windows または macOS 上にフォルダーを手動で作成することもできます。
MATLAB を使用して読み込むいくつかのデータ ファイルを含む "mydatafiles" という名前のフォルダーを作成するとします。
- ファイルの検索とフィルタリング
関数 "dir" を使用して、特定のフォルダー内のすべてのファイルとフォルダーを検索し、結果を MATLAB 構造体に保存します。たとえば、次のコードは、「mydatafiles」フォルダー内のすべての .xlsx ファイルを検索し、配列 files_list に保存します。
folder_path = 'mydatafiles';
files_list = dir(fullfile(folder_path,'*.xlsx'));
このコードでは、folder_path
読み取り対象のフォルダー名、fullfile
パスの連結に関数を使用し、*.xlsx
検索対象のファイルの種類をワイルドカードで指定し、dir
オペレーティング システムに特定のディレクトリ内の情報を要求します。を返し、各ファイルとフォルダーの情報を含む MATLAB を返しますstruct
。コードは結果をfiles_list
配列に保存します。
- 複数のファイルをループで読み取る
2 番目のステップでは、条件を満たすすべてのファイルのリストを取得できます。ただし、これらのファイルを読み取る場合は、フォルダー内のすべてのファイル名が一意であるため、これらのファイルを読み取るときは、ファイル名またはインデックスで区別する必要があることに注意してください。
MATLAB では、フォルダー内のすべてのデータ ファイルを読み取るループを作成できます。ファイルを読み取る基本的なループは次のとおりです。
num_files = numel(files_list); % 获取文件夹中符合要求的文件个数
for i = 1:num_files
filename = files_list(i).name; % 获取文件名
filepath = fullfile(files_list(i).folder, filename); % 获取文件路径
% 在这里编写处理读取的文件内容的代码
end
この例では、numel 関数を使用してファイル リスト内のファイルの数を取得し、for ループを使用して各ファイルを操作します。ループの 2 行目はファイル名を読み取り、fullfile 関数を使用してファイルパス (フォルダー パスとファイル名で構成される) を生成します。ループの最後の行では、データ ファイルの読み取りを処理するコードを記述できます。
- 単一のファイルを読み取る
単一のファイルの読み取りについては、ループとは別の方法を使用して実現できます。Excel ファイルの最初の列を MATLAB に読み取る簡単な例を次に示します。
filename = 'mydatafiles/example.xlsx';
columnA = xlsread(filename,1,'A:A');
filename
この例では、変数を使用してExcel ファイルへのパスを表しています。"xlsread" 関数は、ファイルを MATLAB 配列に読み取りますnum
。前に説明した最初のステップでのファイルの読み取りと同様にtxt
、raw
または 出力パラメーターを使用して Excel ファイル内の文字列または数式を読み取ることもできます。
要約する
MATLAB のファイルおよびフォルダーの操作関数を使用すると、フォルダー内の複数のデータ ファイルを簡単に読み取り、処理できます。データを処理するとき、多くの場合、複数のファイルをループして読み取ることが必要になります。「dir」関数を使用すると、指定されたフォルダー内のすべてのファイルとフォルダーを見つけることができます。「fullfile」関数とファイル名を使用すると、ファイルへのフルパスを構築できます。「xlsread」やその他のファイルを読み取る関数を使用すると、フォルダーからデータ ファイルを簡単に読み取って処理できます。