csvファイルの一括インポートおよび一括処理
23 views (last 30 days)
Show older comments
2点ほどお伺いしたいです.
➀PC内にある対象者1人分の10試技のデータを一括でインポートする方法はありますか?現在,一つのデータずつインポートしているのでかなり時間がかかっています.for文かなにか使えばよいんでしょうか...
②取り込んだ10試技のデータを一つのコードで一気に処理したいです.for文を試したのですがよくわかったため,毎回の処理で名前を変えています.具体的なコードも教えていただけますと助かります.
初歩的な質問で申し訳ありません.どなたかよろしくお願い致します.
4 Comments
Takumi
on 5 Jun 2020
いま処理したいcsvファイルのフォーマットや、現在どのようにファイルをインポートしているか示していただけますともう少し詳細な回答ができます。
Answers (1)
Takumi
on 5 Jun 2020
Edited: Takumi
on 5 Jun 2020
例えば、1列目に要素番号、2列目にランダムな数が5つ並んだcsvファイルが3つあり、それぞれファイル名がfile1.csv、 file2.csv、 file3.csvとなっているとします。以下のコードでサンプルファイルを生成できます。
% サンプルデータ
numfiles = 3;
x = (1:5)';
for k = 1:numfiles
y = rand(size(x)); % 乱数
mydata = table(x,y);
myfilename = sprintf('file%d.csv', k);
writetable(mydata,myfilename);
end
そして、そのファイルを連続で読み込み、ここでは簡単に、二列目の平均を算出したいとします。Rさんのcsvファイルのヘッダーがどうなっているかわかりませんが、例えば上で生成したcsvファイルはreadtable関数でテキスト ファイルから table に読み取ることができ、二列目のデータ(ここでは変数y)に対して平均化処理を適用することができます。
% ファイルのインポート,平均処理
clear
numfiles = 3;
mydata = cell(1, numfiles);
ave = zeros(1,numfiles);
for k = 1:numfiles
myfilename = sprintf('file%d.csv', k);
mydata{k} = readtable(myfilename);
ave(k) = mean(mydata{k}.y);
end
13 Comments
See Also
Categories
Find more on Bartlett in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!