csvファイルの一括インポートおよび一括処理

22 ビュー (過去 30 日間)
R
R 2020 年 6 月 4 日
コメント済み: Takumi 2020 年 6 月 8 日
2点ほどお伺いしたいです.
➀PC内にある対象者1人分の10試技のデータを一括でインポートする方法はありますか?現在,一つのデータずつインポートしているのでかなり時間がかかっています.for文かなにか使えばよいんでしょうか...
②取り込んだ10試技のデータを一つのコードで一気に処理したいです.for文を試したのですがよくわかったため,毎回の処理で名前を変えています.具体的なコードも教えていただけますと助かります.
初歩的な質問で申し訳ありません.どなたかよろしくお願い致します.
  4 件のコメント
Takumi
Takumi 2020 年 6 月 5 日
一般に、連番で保存されたファイルや同じ拡張子を持つファイルを処理するときは連続するファイルのインポートまたはエクスポートを参考にされると良いかと思います。
いま処理したいcsvファイルのフォーマットや、現在どのようにファイルをインポートしているか示していただけますともう少し詳細な回答ができます。
R
R 2020 年 6 月 5 日
インポートの方法についてありがとうございます.
現在処理したいcsv (.csv) ファイルのフォーマットは、
各列、時間 force ポジション 角度 角速度という並びになっています.
このうちforceのピーク前後の平均値を繰り返し算出したいです.
また,インポートはmatlabの”インポート”のボタンを押して一つ一つ取り込んでいます.
回答になっていますでしょうか...?

サインインしてコメントする。

回答 (1 件)

Takumi
Takumi 2020 年 6 月 5 日
編集済み: Takumi 2020 年 6 月 5 日
例えば、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 件のコメント
R
R 2020 年 6 月 8 日
説明不足で申し訳ありません。ブレークポイント試してみます。
ちなみに以下のコードで処理を実行しました(ひとまずファイルの読み取りまで)。
cd csvが格納されているフォルダ名
Files = dir('*.csv');
numfiles = length(Files);
mydata = cell(1, numfiles);
for k = 1:numfiles
myfilename = Files(k).name;
mydata{k} = readtable(myfilename,'HeaderLines',5);
Time = mydata{k}.VarName1;
force = mydata{k}.VarName2;
% 処理 %
end
Takumi
Takumi 2020 年 6 月 8 日
Time = mydata{k}.VarName1;
ではなくて
Time = mydata{k}.Var1;
ではないでしょうか。

サインインしてコメントする。

製品

Community Treasure Hunt

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

Start Hunting!